javascript添加操作返回错误结果

zoz*_*ozo 2 javascript add

我有一个有趣的愚蠢问题:为什么要javascript表现出来10.2 - 17 = -6.800000000000001

在这里找到类似的东西:在javascript中计算一个减号操作返回一个不正确的值,但我不能舍入数字.

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

Mar*_*ers 5

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

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

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

有些语言的decimal类型可以完全代表10.2.然而:

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