加上浮点运算结果很奇怪

问题描述

|| 为什么我打印/显示结果时为什么
eval(\"11.05\") + eval(\"-11\")
结果为0.05000000000000071,而不是预期的0.05。我有什么想念的吗?     

解决方法

        这与
eval
无关。实际上,如果您输入控制台
11.05 - 11
,就会发生以下情况: 这是编程语言如何存储浮点数的结果。它们包括一个小错误。如果您想了解更多有关此的内容,请查看此内容。     ,        这与
eval
无关(应避免使用)。
11.05 - 11
也有同样的问题。 这只是通常的浮点问题     ,        正如其他人指出的那样,这是一个浮点问题,与
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
在这里绝对是无辜的。罪魁祸首是浮点运算。如果您不希望小数点后有大量数字,则可以进行限制。但是你无法避免。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...