Регистрация
19 Окт 2013
Сообщения
80
Репутация
-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;
}
 
чтобы оптимизировать процессы вычислений компилятор и процессор старается не вычислять числа с плавающией точкой если только не заданно явно чисел с плавающей точкой c = (double) a / b;
 
Строго говоря - выводит число double. Но вот a и b - числа целые. Результат операции над целыми числами - целое число. 400/3 = 133 в данном случае. А вот уже ПОСЛЕ деления, данное число преобразуется к double и приравнивается к c. Для исправления ситуации следует или объявить a или b как double или привести их непосредственно при делении: c = double(a) / b;
 
потому что ты делишь целое на целое и получаешь целое используй приведение типов
 
Назад
Сверху