坑爹的保留小数位

今天真的是有够坑爹的,查了百度,木有,查了谷歌也木有,问了朋友,直接对我说,自己弄,最终还是弄出来了,哈哈

大家都注意了,其实,我方法都知道,就是放错位置了:

注意:

javascript中保留两位小数用的函数都是toFixed(2)

但是,这个函数在跟%号弄在一起的时候,它就发癫了,就不听使唤了,请看下面的例子对比:

例一:

var ss=(parseFloat(aa[0]) / parseFloat(aa[1])).toFixed(2);

alert(ss*100+"%");

很有可能数据里面会出现54.5000000001%这种效果

例二:

var ss=(parseFloat(aa[0]) / parseFloat(aa[1]))*100;

alert(ss.toFixed(2)+"%");

那么,它出现的效果就是你想要的效果

出现这两种差别的原因是什么呢?

其实就是坑爹的谁先谁后,

如果,先保留两位小数而用toFixed()方法,在乘以100,就会出现我们不想要的效果

若先乘以100,在保留两位小数而用toFixed()方法,就不会出现我们不想要的效果了!

我是菜鸟,高手请飘过。。。。呵呵

原文地址:https://www.cnblogs.com/angelgril/p/3088909.html