gpt4 book ai didi

Javascript .toFixed() 更精确的舍入替代方案?

转载 作者:行者123 更新时间:2023-12-01 04:58:14 27 4
gpt4 key购买 nike

对于四舍五入小数(价格),我已经使用 .toFixed(2) 一段时间了。但我最近发现 JavaScript 不能“精确”四舍五入小数。我有点震惊,即使 10.005 也无法正确舍入为 10.01。它刚刚向下舍入为 10.00。而其他时候它确实正确地进行了舍入。我喜欢控制我的代码,所以这对我来说是一个很大的禁忌。

由于我正在计算价格,我认为我需要更准确(100%)的数据来仅四舍五入 2 或 3 位小数,也许是 4 位小数。

在 JavaScript 中是否没有直接的方法进行基本舍入,即正确的方法?

更新:正如 Felix Kling 所建议的,将我的价格处理为美分整数的方法,也有缺点(除了更多代码之外)?

最佳答案

像 10.005 这样的数字无法正确舍入的原因是您实际上没有数字 10.005,您只有一个可以使用 double 浮点变量表示的最接近的数字.

您拥有的实际数字可能类似于 10.00499999999276253,并且自然会舍入为 10.00 而不是 10.01。

要处理货币值,您应该使用可以准确表示该值的数据类型。由于 Javascript 中的数字始终是 float ,因此您剩下的就是将数字表示为文本,并编写自己的函数来进行数学计算(或找到已经完成此操作的人)。

关于Javascript .toFixed() 更精确的舍入替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768180/

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