javascript添加操作返回错误结果

时间:2012-06-22 05:42:08

标签: javascript add

我有一个有趣的愚蠢问题: 为什么javascript显示10.2 - 17 = -6.800000000000001

在这里找到类似的东西:Calculate a minus operation in javascript returns a incorrect value但我无法对数字进行舍入。

我可以以某种方式修复此问题,而无需指定要使用多少小数? (我实际上有一些结果可以有6-7个小数)

1 个答案:

答案 0 :(得分:5)

浮点运算并不总是精确的。

特别是没有10.2的精确表示作为浮点值,因此存储最接近的可表示值。该值与10.2略有不同。

处理它的最简单方法是在显示数字时将数字四舍五入到一定数量的小数位。

某些语言的decimal类型可以完全代表10.2。但是:

  • Javascript没有这样的内置类型,因此您必须使用第三方库。
  • 十进制浮点数不能解决所有问题。例如,0.1 / 0.3的结果不能完全表示为小数。当您显示结果时,可能仍需要将结果舍入到一定数量的小数位。