【发布时间】:2012-07-09 20:22:38
【问题描述】:
【问题讨论】:
-
在浮点算术中 0.1 + 0.7 可以等于 0.79999999999999999997 转换为 7..
标签: php
【问题讨论】:
标签: php
由于浮点表示不准确,0.1+0.7 并不完全等于 0.8。它可能比这少一些。当你使用int(..) 时,它会将其截断为 7。
【讨论】:
(int)(string)((0.1+0.7)*10); 但它不是一个通用的解决方案。
printf(..) 执行相同的操作,并使用更高的小数精度。 Arik-so:答案是总有更好的方法,这取决于你想做什么。
其他人已经指出了问题。如果您使用固定的小数位数(例如,在使用货币时),您最好计算和存储美分,然后在向用户显示值时将它们转换回美元/欧元/任何值。
【讨论】: