Chrome返回'-0'

时间:2016-04-18 15:08:22

标签: javascript google-chrome chromium

在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位)进行测试

1 个答案:

答案 0 :(得分:3)

Math.ceil的行为在§ 20.2.2.10的规范中定义,-10之间的值的明确条款:

  

如果x小于0但大于-1,则结果为-0。

Chrome就是这种方式,因为规范明确要求它,-0+0略有不同。

JavaScript(§ 6.1.6)和一般的浮点数(IEEE 754)区分了正零和负零。

差异不是你经常遇到的,但可能很重要(特别是在向硬件或运行时发送数据时),所以JS不能忽视它。