C 浮点算术运算产生值=0
下面的程序生成值=0.000000,尽管格式说明符是浮点的C 浮点算术运算产生值=0,c,C,下面的程序生成值=0.000000,尽管格式说明符是浮点的 #include <stdio.h> int main () { printf ("%f", 5/9); return 0; } 表达式5/9有两个整数参数,因此使用整数除法计算。因此,结果为0 然后通过将int传递给%f格式说明符来调用未定义的行为 将至少一个操作数更改为浮点值以使用浮点除法: printf("%f", 5.0/9.0); 5/9是整数除法。该表达式生成int,但f需要浮
#include <stdio.h>
int main ()
{
printf ("%f", 5/9);
return 0;
}
表达式5/9有两个整数参数,因此使用整数除法计算。因此,结果为0
然后通过将int传递给%f格式说明符来调用未定义的行为
将至少一个操作数更改为浮点值以使用浮点除法:
printf("%f", 5.0/9.0);
5/9是整数除法。该表达式生成int,但f需要浮点或双参数
将呼叫更改为:
printf ("%f", 5 / 9.0);
执行浮点除法并具有双参数。5和9是整数。两个整数的除法将始终是整数。做一个浮球或双人球
printf ("%f", 5.0/9);
或
printf ("%f", 5/9.0);
当整数被除时,/运算符的结果是丢弃任何分数部分的代数商。5.0和9.0不是浮点数,它们是双重的。感谢您的更正:
printf ("%f", 5/9.0);