Javascript 浮点加法的奇怪结果

Javascript 浮点加法的奇怪结果,javascript,Javascript,为什么在打印/显示结果时会出现这种情况 eval("11.05") + eval("-11") 结果是0.0500000000000071,而不是预期的0.05。有什么我遗漏的吗?这与评估无关(你应该避免) 使用11.05-11也会遇到同样的问题 这只是通常的这与eval无关。事实上,如果您在控制台中键入11.05-11,就会发生这种情况: 这是编程语言如何存储浮点数的结果;其中包括一个小错误。如果您想了解更多这方面的信息,.函数eval在这里绝对是无辜的。罪魁祸首是浮点运算。如果您不希望小

为什么在打印/显示结果时会出现这种情况

eval("11.05") + eval("-11")

结果是0.0500000000000071,而不是预期的0.05。有什么我遗漏的吗?

这与
评估无关(你应该避免)

使用
11.05-11
也会遇到同样的问题


这只是通常的

这与
eval
无关。事实上,如果您在控制台中键入
11.05-11
,就会发生这种情况:


这是编程语言如何存储浮点数的结果;其中包括一个小错误。如果您想了解更多这方面的信息,.

函数
eval
在这里绝对是无辜的。罪魁祸首是浮点运算。如果您不希望小数点后有大量数字,则可以限制。但是您无法避免它。

正如其他人所指出的,这是一个浮点问题,与
eval
无关。现在,对于
eval
:您可以使用以下方法轻松避免它:

Number("11.05") + Number("-11");
为了避免错误的结果,您可以使用
toPrecision

(Number("11.05") + Number("-11")).toPrecision(12);
// or if you want 0.05 to be the outcome
(Number("11.05") + Number("-11")).toPrecision(1);

这不是一个
eval
问题,它是由浮点运算引起的。看见