在 Chrome JavaScript 控制台中:
Math.ceil(-0.5)
返回 -0
Math.ceil(-0.9)
返回 -0
Math.ceil(-0.1)
返回 -0
为什么在 0 前面打印出负号?
我本以为 Chrome 只会返回 0
使用 Chrome (OSX) 版本 49.0.2623.110(64 位)进行测试
最佳答案
Math.ceil
的行为在 § 20.2.2.10 的规范中定义。 ,对于 -1
和 0
之间的值有一个显式子句:
If x is less than 0 but greater than -1, the result is −0.
Chrome 之所以这样做,是因为规范明确要求它,并且 -0
和 +0
略有不同。
JavaScript ( § 6.1.6 ) 和一般的 float ( IEEE 754 ) 区分正零和负零。
这种差异不是您经常遇到的,但可能很重要(尤其是在向硬件发送数据或在运行时内发送数据时),因此 JS 不能简单地忽略它。
关于javascript - Chrome 返回 '-0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36697852/