这是我的问题:
rx_data
为什么功能在打印30时会打印0?
因为计算结果是:30.30303030
答案 0 :(得分:1)
计算结果不是30.30303030
而是0
,因为
60 / 99
。结果被截断为零,因为这是整数除法,结果为0 50 * 0
。结果是0。您应该使用double
进行计算。
#include <stdio.h>
#include <math.h>
int main()
{
int n = static_cast<int>(50.0 * (60.0 / 99.0));
printf("Floor: %d\n", n);
return 0;
}
使用50 * (60.0 / 99)
或50 * (60 / 99.0)
代替50.0 * (60.0 / 99.0)
也可以,因为其他操作数将转换为double
以匹配类型,但使用50.0 * (60 / 99)
isn'好,因为60 / 99
是0。