#include <stdio.h>
#define KILOMETRE 9
main()
{
float metre = KILOMETRE / 1000;
printf("%f\n", metre);
}
答案应为0.009,因为9/1000 = 0.009
但在执行程序后,输出结果为0.00。
请帮忙。 :d
答案 0 :(得分:7)
在此表达式中
KILO/1000
两个操作数都是整数。因此,整数值的操作结果等于0。
您可以改为编写
KILO/1000.0f
在这种情况下,编译器将处理浮点数。
考虑到根据C标准函数main,没有参数应声明为
int main( void )
答案 1 :(得分:3)
这是因为您正在执行整数除法。如果两个操作数都是int
类型,则结果也是int
。在这种情况下,当你分割两个整数时,结果将被截断 - 也就是说,小数部分将被抛出。您需要将代码更改为
KILO / 1000.
注意尾随小数点。这告诉编译器1000
是浮点数,而不是整数。
答案 2 :(得分:2)
当对两个整数执行算术运算(即,两个操作数是整数)时,结果将是整数。因此,为了获得浮点输出,请将代码重写为float metre = (float) KILOMETRE / 1000;