我发现IE10不会造成精度损失,这在Edge,Chrome,Firefox等其他浏览器中很常见。我想知道IE10中是否有兼容的解决方法?
为什么使用IE10进行十进制算术时没有精度损失?
•
问答
dalaoer007 回答:为什么使用IE10进行十进制算术时没有精度损失?
尝试清除浏览器数据(缓存和历史记录),然后重新检查。
我已经在计算机上对其进行了测试,所有浏览器(包括IE 9 +,Microsoft Edge,Chrome和Firefox)将显示相同的结果0.30000000000000004
,这是浮点运算问题,您可以检查this article和this thread。
要解决浮点算术问题,我们可以使用以下方法:
-
请参考以下代码:
var x = 0.2 + 0.1; document.getElementById("demo1").innerHTML = "0.2 + 0.1 = " + x; var y = (0.2*10 + 0.1*10) / 10; document.getElementById("demo2").innerHTML = "0.2 + 0.1 = " + y;
输出如下:
0.2 + 0.1 = 0.30000000000000004 0.2 + 0.1 = 0.3
-
使用toFixed方法。
var x = 0.1; var y = 0.2; console.log((x + y).toFixed(1));
结果是:
0.3