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);
括号的里的就是小数位数了。