这个问题可能已经存在,但无法找到我的具体问题。
我有两个号码要添加,我不想使用 round()功能,因为我正在使用钱。
1.70 + 1.44 = 3.14 //Returns 3.1399999999999997
1.70 + 1.45 = 3.15 //Returns the correct answer
1.70 + 1.37 = 3.07 //Returns 3.0700000000000003
我在Javascript中尝试过但仍然存在同样的问题。
答案 0 :(得分:1)
由于您正在使用资金,因此请始终使用Python中的decimal.Decimal
类。
答案 1 :(得分:0)
使用parseFloat
来精确:
parseFloat(number).toFixed(precision);
E.g。
parseFloat(1.70 + 1.37).toFixed(2); // RETURN 3.07
答案 2 :(得分:0)
您可以实现此目的的一种方法是将所需的值乘以(10 *精度),然后将结果除以(10 *精度)。
您可以添加一种方法来帮助您保持简单。