我在 C 中有以下代码
#include <stdio.h>
int main()
{
float a = 1.88;
a =a - (0.25 * 7 + 0.1 * 1);
a = a *100;
printf("a = %f\n",a );
int b =(int) (a);
printf("b = %d\n", b);
}
b 的值应该是 2
但我得到以下输出-
a = 3.000000
b = 2
为什么会这样?
最佳答案
如果你改变
printf("a = %f\n",a );
到
printf("a = %.20f\n",a );
输出
a = 2.99999952316284179688
如您所见,这不是 3。
因此转换将其截断为 2。
关于c - 在 C 意外输出中 float 到 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40189877/