在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位)进行测试
答案 0 :(得分:3)
Math.ceil
的行为在§ 20.2.2.10的规范中定义,-1
和0
之间的值的明确条款:
如果x小于0但大于-1,则结果为-0。
Chrome就是这种方式,因为规范明确要求它,-0
和+0
略有不同。
JavaScript(§ 6.1.6)和一般的浮点数(IEEE 754)区分了正零和负零。
差异不是你经常遇到的,但可能很重要(特别是在向硬件或运行时发送数据时),所以JS不能忽视它。