不理解这个简单的php代码是如何工作的


Do not understand how this simple php code works

可能重复:
PHP数学精度

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

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

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

其他人已经指出了这个问题。如果你使用的是固定数量的小数位数(例如,在使用货币时),你最好计算和存储美分,并在向用户显示值时将其转换回美元/欧元/随便什么。