javascript小数相减出现一长串的小数位数

我们要修改网页某个数据的显示格式,需要两步操作:

1.在JS中通过$('.class1 .class2 li:eq(2) span.value').text().trim();类似的语句获取到数据内容。

2.将数据修改成需要的格式。(eg:data=10  ==>  9+1)

如果我们拿到的data值是整数,那么没问题,事情会进展的很顺利,跟预期的结果一样。

但是如果带小数的话,问题就来了。

这是为什么呢?

答:这个和数据结构有关系,整数型自动转换成正型计算,小数型直接转成double型计算,这是在内存中运算的时候必须这样,你该知道计算机只认识0和1吧 ,具体的就是浮点精准度的问题,float 精确到小数点后7位double 精确到小数点后15位。

知道了问题的原因,那我们只需要做一个简答的保留小数位数操作就解决了,即:

data.toFixed(2);

括号的里的就是小数位数了。

原文地址:https://www.cnblogs.com/endlessdream/p/4180541.html