关于javascript:浮点数数学问题加法和减法

float number math problem addition and subtraction

本问题已经有最佳答案,请猛点这里访问。

我知道javascript在数学方面有一个众所周知的问题,它会导致数学问题返回错误的不稳定的十进制数字。但是如何在JS中进行简单的加法和减法,却没有一个奇怪的结果呢?加减数不是固定数,而是变量的传递数。例如。。。

附加

1
2
3
4
var a = 3.94
var b = 0.5
var r = a + b
console.log(r) //4.4399999999999995

减去

1
2
3
4
var a = 4.22
var b = 0.5
var r = a - b
console.log(r) //3.7199999999999998

我知道JS中的数学浮点问题,但我正在寻找一个简单的解决方案,在做一些加法和减法时不要出现这个问题。

浮点运算是否中断?


多亏了@stakvino的建议,我想我明白了。

告诉我你们的想法。

附加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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)

减法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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)