Javascript .toPrecision() 四舍五入有效数字错误?[复制]

Javascript .toPrecision() rounding significant digits wrong? [duplicate]

提问人:kodesprog 提问时间:2/1/2023 最后编辑:kodesprog 更新时间:2/1/2023 访问量:71

问:

请考虑以下几点:

console.log(0.1050.toPrecision(2));
console.log(0.1150.toPrecision(2));

// OUTPUT:
// "0.10"
// "0.12"

在我看来,javascripts 'toPrecision()' 中的舍入不一致。这可能是正确的,但我不明白。我预计,由于 JS 将四舍五入一半,第一个输出将是“0.11”,但事实并非如此。

有人可以向我解释为什么会这样吗?只有当要四舍五入的 5 之前出现零时,我才能重现这一点。

当在网络上使用任何“有效数字计算器”时,这些都以“0.11”作为减少到 2 位有效数字的正确答案。

JavaScript 数学 舍入 精度 有效数字

评论

2赞 VLAZ 2/1/2023
0.1050存储为 while 存储为 。有关转换,请参阅此处。相关(但不是重复):浮点数学坏了吗?0.1049999967217445373535156250.11500.115000002086162567138671875

答: 暂无答案