alert( 0.1 + 0.2 ); // 0.30000000000000004
一个数字以其二进制的形式存储在内存中,一个 1 和 0 的序列。但是在十进制数字系统中看起来很简单的 0.1,0.2 这样的小数,实际上在二进制形式中是无限循环小数。
换句话说,什么是 0.1?0.1 就是 1 除以 10,1/10,即十分之一。在十进制数字系统中,这样的数字表示起来很容易。将其与三分之一进行比较:1/3。三分之一变成了无限循环小数 0.33333(3)。
使用二进制数字系统无法 精确 存储 0.1 或 0.2,就像没有办法将三分之一存储为十进制小数一样。
// solution
let sum = 0.1 + 0.2;
alert( sum.toFixed(2) ); // 0.30