在哪些情况下乘法和除法不能解决浮点错误?

In which cases multiply and divide will not solve floating point errors?

在下面的代码片段中,浮点数错误通过乘以和除以 10 来解决。

没有乘法和除法 z 的值显示为 0.30000000000000004 而不是 0.3

方法"seems"不理想:

var x = 0.1;
var y = 0.2;
var z = (x * 10 + y * 10) / 10;
document.getElementById("demo").innerHTML = z;
<p id="demo"></p>

问题:

为什么不将 .toFixedparseFloat 一起精确使用。

var x = 0.1;
var y = 0.2;

function add(foo, bar, precision){
    return parseFloat((foo + bar).toFixed(precision));
}

var sum = add(x, y, 1);
alert(sum);