六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 21|回复: 0

js parseFloat 减法小数过多解决方法

[复制链接]

升级  17%

73

主题

73

主题

73

主题

举人

Rank: 3Rank: 3

积分
251
 楼主| 发表于 2013-1-22 22:33:12 | 显示全部楼层 |阅读模式
 
由于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 运算的结果精度相同
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表