不明白这个简单的PHP代码是如何工作的

时间:2012-07-10 11:05:05

标签: php

  

可能重复:
  PHP Math Precision

以下php代码输出7但我希望8.为什么不同?

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

2 个答案:

答案 0 :(得分:6)

由于不准确的浮点表示,0.1 + 0.7不完全等于0.8。它可能比那个微不足道。当您使用int(..)时,它会将其截断为7。

答案 1 :(得分:1)

其他人已经指出了这个问题。如果你正在使用固定数量的小数位(例如,当使用金钱时),你最好计算和存储美分并将它们转换回美元/欧元/无论何时向用户显示价值。 / p>