gpt4 book ai didi

javascript - 4.25.toFixed(1) == 4.35.toFixed(1) == 4.3 但 2.35.toFixed(1)==2.4

转载 作者:行者123 更新时间:2023-11-28 15:40:36 26 4
gpt4 key购买 nike

当非小数部分大于 4 时,小数部分将被 chop 为 .3但当它小于 4 时,它会四舍五入为 .4 .

示例:

1.nr>4:

5.35.toFixed(1) => 5.3
15.35.toFixed(1) => 15.3
131.35.toFixed(1) => 131.3

2.nr<4:

2.35.toFixed(1) =>2.4
1.35.toFixed(1) =>1.4

这种行为正常吗?

最佳答案

问题是您调用 toFixed精确值不是 1.35 等...它们是最接近的 IEEE-754 64 位表示形式。在本例中,确切的值为:

1.350000000000000088817841970012523233890533447265625
2.350000000000000088817841970012523233890533447265625
5.3499999999999996447286321199499070644378662109375
15.3499999999999996447286321199499070644378662109375

现在查看这些值并计算出如何四舍五入到小数点后一位。

基本上,您犯了这样一个事实:这些是 float 二进制点值,因此您以十进制表示的值并不总是实际使用的值。这只是一个近似值。在其他语言中,首选的替代方案是使用表示浮点小数点值的类型(例如 Java 中的 BigDecimal 或 C# 中的decimal),但我不知道标准 Javascript 中有什么类似的东西。不过,您可能会找到一些第三方库。

关于javascript - 4.25.toFixed(1) == 4.35.toFixed(1) == 4.3 但 2.35.toFixed(1)==2.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23935477/

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