C 为什么结果是0而不是0.009? #包括 #定义9公里 main() { 浮动米=千米/1000; printf(“%f\n”,米); }

C 为什么结果是0而不是0.009? #包括 #定义9公里 main() { 浮动米=千米/1000; printf(“%f\n”,米); },c,operators,C,Operators,答案应该是0.009,因为9/1000=0.009 但在执行程序后,输出结果是0.00 请帮忙D在这个表达式中 #include <stdio.h> #define KILOMETRE 9 main() { float metre = KILOMETRE / 1000; printf("%f\n", metre); } 两个操作数都是整数。因此整数值的运算/的结果等于0 你可以改写 KILO/1000 在这种情况下,编译器将处理浮点数 考虑到根据C标准,无参数的

答案应该是0.009,因为9/1000=0.009

但在执行程序后,输出结果是0.00

请帮忙D在这个表达式中

#include <stdio.h>
#define KILOMETRE 9

main()
{
    float metre = KILOMETRE / 1000;
    printf("%f\n", metre);
}
两个操作数都是整数。因此整数值的运算/的结果等于0

你可以改写

KILO/1000
在这种情况下,编译器将处理浮点数

考虑到根据C标准,无参数的主要功能应声明如下

KILO/1000.0f

这是因为您正在执行整数除法。如果两个操作数的类型都是
int
,则结果也将是
int
。在这种情况下,当你除以两个整数时,结果将被截断——也就是说,小数部分将被抛出。您需要将代码更改为

int main( void )

注意后面的小数点。这告诉编译器
1000
是浮点,而不是整数。

当对两个整数(即两个操作数是整数)执行算术运算时,结果将是整数。因此,为了获得浮点输出,将代码重写为
float meter=(float)km/1000

首先,什么是千?检查一下:如果你还记得小学时的整数数学,九除以千等于零,余数是九。最好将公里定义为浮点,而不是除数
KILO / 1000.