我有一个有趣的愚蠢问题:
为什么javascript
显示10.2 - 17 = -6.800000000000001
?
在这里找到类似的东西:Calculate a minus operation in javascript returns a incorrect value但我无法对数字进行舍入。
我可以以某种方式修复此问题,而无需指定要使用多少小数? (我实际上有一些结果可以有6-7个小数)
答案 0 :(得分:5)
浮点运算并不总是精确的。
特别是没有10.2的精确表示作为浮点值,因此存储最接近的可表示值。该值与10.2略有不同。
处理它的最简单方法是在显示数字时将数字四舍五入到一定数量的小数位。
某些语言的decimal
类型可以完全代表10.2。但是:
0.1 / 0.3
的结果不能完全表示为小数。当您显示结果时,可能仍需要将结果舍入到一定数量的小数位。