Странный вывод с гранулами c
float f=44268/107402;
printf("\n%f",f);
выход:
0.000000
Как это может произойти!
Я использую pelles c ide на win 7.
3 ответа
Решение
Компилятор обрабатывает операнды как целые числа. Пытаться:
float f = 44268.0 / 107402;
^
Или, может быть
float f = (float)44268 / 107402;
Integer division truncates
float f=44268.0/107402;
Создание одного числа с плавающей запятой автоматически продвигает другое число до числа с плавающей запятой, и в конечном итоге получается результат с плавающей запятой.
float f = 44268 / 107402;
Переменная будет инициализирована целочисленным значением. Вы должны добавить с плавающей запятой, чтобы сказать компилятору, что вы хотите значение с плавающей запятой.
float f = 44268. / 107402.;