在JavaScript,Python和可能的其他语言中,如果将值37.305
舍入到小数点后两位,则会得到错误的值:
Number(37.305).toFixed(2) => 37.30 // Should be 37.31
代表钱时精度问题的一种解决方案是使用micros。即$ 1.00 => 1,000,000微米。
我的问题是:如何将代表$ 37.305的值以微妙(37305000
的形式四舍五入到小数点后两位(结果应为37.31
?
答案 0 :(得分:1)
将表示形式(以微米为单位) R 舍入为 n 小数位(在表示的值中):
以上满足非负 R 的要求。为了支持负数,可能需要进行调整以选择残基并应用舍入规则选择 s 。这些相当简单,但是取决于使用的编程语言中哪些余数或余数运算方便,以及所需的舍入规则。