Тупой вопрос по с++ ниже - Вопросы по С+
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Тупой вопрос по с++ ниже

Регистрация
19 Окт 2013
Сообщения
82
Репутация
-3
Спасибо
1
Монет
0
Объясните почему при выполнении программы выводит целое значение а не дробное? с же объявлена как double....

int main() {
int a;
int b;
double c;

a = 400;
b = 3;
c = a / b;
cout << c;

system("pause");
return 0;
}
 
Регистрация
5 Апр 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
чтобы оптимизировать процессы вычислений компилятор и процессор старается не вычислять числа с плавающией точкой если только не заданно явно чисел с плавающей точкой c = (double) a / b;
 
Регистрация
2 Сен 2013
Сообщения
82
Репутация
0
Спасибо
1
Монет
0
Строго говоря - выводит число double. Но вот a и b - числа целые. Результат операции над целыми числами - целое число. 400/3 = 133 в данном случае. А вот уже ПОСЛЕ деления, данное число преобразуется к double и приравнивается к c. Для исправления ситуации следует или объявить a или b как double или привести их непосредственно при делении: c = double(a) / b;
 
Сверху Снизу