计算JavaScript的问题

计算JavaScript的问题,javascript,numbers,Javascript,Numbers,在他们的控制台浏览器中进行测试 1067.11-1000=67.1099999999 但是正确的事情67.11 甚至可以测试计算器窗口 有人能给我解释一下吗?浮点数是使用base2存储的,这会产生一些小差异,就像您在转换为base10时所演示的那样。如果使用以下数字,差异将更大:1000000067.11-1000000000=67.1100000143。这是因为精度水平随着计算的数字的增加而降低。缺乏精度是浮点型数字的主要缺点-一些实数只能近似表示 您可以按照了解有关浮点格式表示的更多信息谷歌

在他们的控制台浏览器中进行测试

1067.11-1000=67.1099999999

但是正确的事情67.11

甚至可以测试计算器窗口


有人能给我解释一下吗?

浮点数是使用base2存储的,这会产生一些小差异,就像您在转换为base10时所演示的那样。如果使用以下数字,差异将更大:1000000067.11-1000000000=67.1100000143。这是因为精度水平随着计算的数字的增加而降低。

缺乏精度是浮点型数字的主要缺点-一些实数只能近似表示


您可以按照了解有关浮点格式表示的更多信息

谷歌浮点数浮点数是近似值,它们并不总是精确无误…解决方案:数学。舍入((1067.11-1000)*100)/100解决方案:数学。舍入((1067.11-1000)*100)/100当然舍入可以解决问题,我只是在扩大这个问题。F.J.的评论指出了一个非常好的SO问题,并给出了一个非常好的答案。