gpt4 book ai didi

javascript - 为什么舍入 -0.1 返回 -0

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:14 24 4
gpt4 key购买 nike

在测试时,我注意到 Math.round() 有一些奇怪的地方.

当我将负数舍入到接近 0(-0.1-0.01 等)时,我的控制台中的返回值将是 -0 而不是 0。更奇怪的是,如果我将相同的值设置为元素的文本,该元素将显示 0,而不是 -0

演示: http://jsfiddle.net/dirtyd77/qcug9/

enter image description here

谁能解释为什么会这样?任何帮助将不胜感激!

此外,我正在使用 Chrome 版本 33.0.1750.117

最佳答案

JavaScript 使用的数字类型(IEEE-754 double float )具有“正”和“负”零的概念。

-0.1 的下一个最高整数是 -0。在这种情况下,“最高”意味着“朝向正无穷大”。

来自 the specification, §15.8.2.15 "Math.round" :

If x is less than 0 but greater than or equal to -0.5, the result is −0.

-0+0 在转换为字符串时都呈现0。例如:

console.log(-0)         // 0 or -0 depending on what console you use
console.log(String(-0)) // 0 (always)

关于javascript - 为什么舍入 -0.1 返回 -0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22153021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com