echo number_format(19.99 * 100, 20); // output:1,998.99999999999977262632
为什么会这样?浮点型是怎么存储的。我的想法可能是浮点型本来就不是精确存储的。
解决了这个问题也就知道为什么intval
后的值是1998
了。
echo number_format(19.99 * 100, 20); // output:1,998.99999999999977262632
为什么会这样?浮点型是怎么存储的。我的想法可能是浮点型本来就不是精确存储的。
解决了这个问题也就知道为什么intval
后的值是1998
了。
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答610 阅读✓ 已解决
798 阅读
浮点数的存储精度跟系统有关,PHP 通常使用 IEEE 754 双精度格式,默认是20位有效精度。Floating point numbers
浮点数使用指南