我知道JavaScript在数学方面存在一个臭名昭著的问题,可能会导致数学问题返回错误的十进制数字。但是,如何在JS中进行简单的加减运算却不会产生奇怪的结果呢?而且加法和减法的数字不是固定数字,而是基于变量的。例如...
添加
var a = 3.94
var b = 0.5
var r = a + b
console.log(r) //4.4399999999999995
减去
var a = 4.22
var b = 0.5
var r = a - b
console.log(r) //3.7199999999999998
我知道JS中的数学浮点问题,但我正在寻找一种简单的解决方案,以免在进行一些加法和减法时出现此问题。
答案 0 :(得分:1)
感谢@Stakvino的建议,我想我已经弄清楚了。
让我知道你们的想法。
添加
var a = 3.94
var b = 0.5
var fixed = String(a)
if (fixed.indexOf('.') === -1) {
fixed = 0;
}
else {
fixed = fixed.split('.')
fixed = fixed[1].length;
}
var r = (a + b).toFixed(fixed)
console.log(r)
减法
var a = 4.22
var b = 0.5
var fixed = String(a)
if (fixed.indexOf('.') === -1) {
fixed = 0;
}
else {
fixed = fixed.split('.')
fixed = fixed[1].length;
}
var r = (a - b).toFixed(fixed)
console.log(r)