1

可能重复:
PHP 数学精度

下面的 php 代码输出 7,但我期望 8。为什么不同?

<?php echo (int)((0.1+0.7)*10); ?>
4

2 回答 2

6

因为由于浮点表示不准确,0.1+0.7 并不完全等于 0.8。它可能比这少一些。当您使用 时int(..),它会将其截断为 7。

于 2012-07-10T11:06:59.517 回答
1

其他人已经指出了问题。如果您使用固定的小数位数(例如,使用货币时),您最好计算和存储美分,然后在向用户显示值时将它们转换回美元/欧元/任何值。

于 2012-07-10T11:14:07.797 回答