gpt4 book ai didi

javascript - toPrecision 的行为是否像 round 和 toString 一样?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:55:54 26 4
gpt4 key购买 nike

toPrecision的返回值是“一个字符串......以定点或指数表示法四舍五入到精确的有效数字。”

8.235 => "8.23"不是四舍五入。为什么不同?

var toP = function (n) {
console.log(n, n.toPrecision(3) );
}

toP(1.235); // 1.235 "1.24"
toP(2.235);
toP(3.235);
toP(4.235);
toP(5.235);
toP(6.235);
toP(7.235);
toP(8.235); // 8.235 "8.23" why?
.as-console-wrapper{min-height:100%}

最佳答案

一如既往,应归咎于浮点(不)准确。

1.235 在二进制中是 1.0011110000101000111101011100001010001111010111000011...
chop 并转换回十进制,你得到 1.235000000000000098,它确实四舍五入。

但是 8.235 是 1000.0011110000101000111101011100001010001111010111...
chop 并转换回十进制,您将得到 8.234999999999999432,向下舍入。

关于javascript - toPrecision 的行为是否像 round 和 toString 一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42837758/

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