提问人:kodesprog 提问时间:2/1/2023 最后编辑:kodesprog 更新时间:2/1/2023 访问量:71
Javascript .toPrecision() 四舍五入有效数字错误?[复制]
Javascript .toPrecision() rounding significant digits wrong? [duplicate]
问:
请考虑以下几点:
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 位有效数字的正确答案。
答: 暂无答案
评论
0.1050
存储为 while 存储为 。有关转换,请参阅此处。相关(但不是重复):浮点数学坏了吗?0.104999996721744537353515625
0.1150
0.115000002086162567138671875