Форум программистов, компьютерный форум CyberForum.ru

При делении округляет - C++

Восстановить пароль Регистрация
 
silverhawk90
3 / 3 / 0
Регистрация: 23.03.2010
Сообщений: 31
19.11.2012, 03:09     При делении округляет #1
Объясните мне, пожалуйста, такой казус:
C++
1
2
3
4
5
double e=0,k=2;
 
e=352*k+1;
e/=25;
cout<<e<<endl;
На экран выдает: 28,2

А когда пишу:
C++
1
2
3
4
double e=0,k=2;
 
e=(352*k+1)/25;
cout<<e<<endl;
то выдает на экран: 28
Почему он округляет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 03:09     При делении округляет
Посмотрите здесь:

при делении на 7 дают остаток 1, 2, или 5 C++
C++ Калькулятор - исключение при делении на 0
написать программу в Dev-C++ для поиска трехзначных чисел, которые при делении на 47 дают в остатке 43, а при делении на 43 дают в остатке 47 C++
C++ Что возвращать при делении на ноль?
При делении 2 на 4 результат - 0 C++
Округление при делении C++
C++ Найти все пятизначные числа, которые при делении на A дают в остатке B, а при делении на C дают в остатке D
C++ Как происходит переполнение при делении

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peregrin
33 / 33 / 1
Регистрация: 16.11.2012
Сообщений: 59
19.11.2012, 03:27     При делении округляет #2
В первом примере сначала e=705, затем при e/=25 происходит приведение "705" к "705." и получается 28.2.
Во втором примере видимо k приводится к int, вычисляется 705/25, которое равно 28.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
19.11.2012, 03:31     При делении округляет #3
Цитата Сообщение от Peregrin Посмотреть сообщение
Во втором примере видимо k приводится к int
Если это так, то это ошибка компилятора. Хотя где-то я такую ошибку уже видел, т.е. это вполне возможно.

Добавлено через 1 минуту
Но это при условии, что k действительно double.
Yandex
Объявления
19.11.2012, 03:31     При делении округляет
Ответ Создать тему
Опции темы

Текущее время: 23:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru