This question already has answers here:
Closed 5 years ago.
Why can't decimal numbers be represented exactly in binary?
(20个答案)
为什么当我运行C代码时
float x = 4.2
int y = 0
y = x*100
printf("%i\n", y);

我找到419了?不是420吗?
这让我难堪。

最佳答案

浮子不够大,无法精确存储4.2。如果你用足够的精度打印x,你可能会看到它是4.19999995左右。乘以100得到419.999995,整数赋值截断(向下舍入)。如果你把x变成双倍的话,它应该有用。

关于c - C乘法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22676991/

10-12 15:37