JS中的浮点乘法产生错误的结果

时间:2017-09-12 10:58:28

标签: javascript floating-accuracy

在Javascript中遇到了一个奇怪的结果(实际上也是python)

var a = 80.1
var b = 100
var a/b = 0.8009999999999999

var a = 80.1
var b = 100
var a*b = 8009.999999999999

80.2

同样不会发生

想知道为什么会发生这种情况

1 个答案:

答案 0 :(得分:0)

JavaScript使用的数学表示法位于IEEE 754中,因此并非所有数字都可以用IEEE 754表示。如果你想进行除法并得到正确的结果,那么你需要使用小数值的舍入,如,



var a = 80.1;
var b = 100;
console.log((a/b).toFixed(3));