Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: PHP 数学精度
下面的 php 代码输出 7,但我期望 8。为什么不同?
<?php echo (int)((0.1+0.7)*10); ?>
因为由于浮点表示不准确,0.1+0.7 并不完全等于 0.8。它可能比这少一些。当您使用 时int(..),它会将其截断为 7。
int(..)
其他人已经指出了问题。如果您使用固定的小数位数(例如,使用货币时),您最好计算和存储美分,然后在向用户显示值时将它们转换回美元/欧元/任何值。