【发布时间】:2017-07-13 22:06:17
【问题描述】:
PHP
<?php echo (-9.341+2.111);
结果 -7.23
Javascript
console.log(2.111-9.341)
结果-7.229999999999999
我知道浮动算术,但为什么 vanilla PHP 给出准确的答案而 Javascript(在 Google Chrome 控制台上测试)没有?
【问题讨论】:
-
你会发现很多地方 PHP 也会给你重复的数字。
-
JavaScript 和 PHP 都使用 IEEE 754,echo 可能是四舍五入(注意 PHP 浮点数是 32b 还是 64b 取决于平台)
-
-7.23似乎没有有限的二进制表示。 -
echo (-9.341+2.111 == -7.23 ? "true" : "false");结果:假
标签: javascript php precision numeric