在Javascript中的浮点数运算的多位小数的解决方案产品

浮点数Javascript的乘法运算出现在十进制数的情况下。

这是由于在运算后将浮点数转换成二进制的操作,但一些十进制数在二进制编码后出现无限循环,计算错误,其他语言也有类似的问题。

解释的原因来自百度。

例如,要求1038.1-1000
1038.1 = 10000001110.0001100110011001100110011001100110011001100…
1000 = 11111 01000

1038.1,转换为二进制是无限循环小数。1100是圆形截面。它只能取近似值。这里生成错误。如果浏览器版本高,你可以使用固定的()把45号到指定的小数位数的方法。

该解决方案是基于小数要保留的数量(例如,4),(10 ^乘以4)计算产品的时候,然后将计算结果(10 ^ 4),最后得到的结果math.round近似值。
复制代码代码如下所示:
var = 2232,
百分比=(10 100),
总计= %;
警报(总计);223.20000000000002

math.round总=(总* 10)/ 10;
警报(总计);223.2