欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

js parseFloat 精确度 精度

shiping1 的头像
你必须要这样,才能实现:
<script>
alert(parseFloat(12.44644).toFixed(2));
</script>
想要精确到几位,就tofixed几
S浮点运算存在不精确问题,弥补的办法是转化为整形运算再转为浮点型。记得在本版看过有关方面的贴子。
来自 http://bbs.csdn.net/topics/40088105

由于js的float类型便面 不像java那样足够 精确,所以做减法时会出现超多的小数,如何解决,我有如下方法

 

做法一:四舍五入的做法

            Math.round(234432.9- 0.2);

           

做法二:保留几位小数

             var t1 = 234432.9- 0.2;


             var t2 = t1.toFixed(2);

做法三:扩大一定的倍数,对结果在缩小这个倍数

            前两种做法 都会是我们的精度在降低,还有一种方法就是,如果你可以确定你的数字最多有多少位小数,你就给它扩大多少倍,按照整数的减法来做,对结果进行 刚才扩大的倍数的同等缩小

            var temp   = Number('0.2223123')*1000000000000;
            var temp2 = Number('234432.912113213123')*1000000000000;
            var temp3 = (temp2-temp)/1000000000000;

 

            这样结果会和java 运算的结果精度相同
来自
http://kaobian.iteye.com/blog/1014345

 

parseFloat的精确度,以及去掉小数点后面的0

0人收藏此文章, 我要收藏发表于2个月前(2013-08-08 17:13) , 已有6次阅读 ,共0个评论

parseFloat(2.2222222222);输出2.2222222222;

我们可以用toFixed(3)决定小数点后的位数

parseFloat(2.2222222222).toFixed(3); 就输出2.222

但当parseFloat(2).toFixed(3); 输出2.000

这是可以再用parseFloat()去掉0

parseFloat(parseFloat(2).toFixed(3));  就是2了

怎么样   妙吧
来自
http://my.oschina.net/u/254267/blog/151345
 


 

普通分类: