2
诠释我在C浮在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
为什么会这样呢?
我花了10秒阅读“C浮动转换成int”第一谷歌命中: http://c-faq.com/fp/round.html。你的代码被截断,而不是转换。 –
可能重复[浮点数学是否被破坏?](http://stackoverflow.com/questions/588004/is-floating-point-math-broken) – EOF
我怀疑你的意思是“b应该是3,但它为什么是2 “?答案在下面给出。 –