当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 解决js计算 小数加减乘除失真的功能函数

解决js计算 小数加减乘除失真的功能函数

2018年12月01日  | 移动技术网IT编程  | 我要评论
function floatpoint(one,two,str){
            //转化为字符串
            one = ''+one
            two = ''+two
            //切割成整数部分和小数部分
            var onestr = one.split('.')
            var twostr = two.split('.')
           
            
            // 处理参数一或二为整数的情况
            if(!onestr[1]){
                onestr[1] = ''
            }
            if(!twostr[1]){
                twostr[1] = ''
            }

            var length=null
             //比较小数部分的长度,以确定剥离小数点后放大的倍数
            var onefloatlength = onestr[1].length
            var twofloatlength = twostr[1].length
            if(onefloatlength>twofloatlength){
                length = onefloatlength
                twostr[1]=twostr[1].padend(length,'0')
            } else if(twofloatlength>onefloatlength){
                length = twofloatlength
                twostr[1]=onestr[1].padend(length,'0')
            } else{
                length = twofloatlength
            }
            // 拼接成处理后的数字
            var onebig = onestr[0]+onestr[1]
            var twobig = twostr[0]+twostr[1]
            
            //根据运算符决定运算后缩小的倍数
            var result=null
            switch(str){
                case '+' :;
                case '-' : result = eval(onebig+str+twobig)/(10**length)
                break;
                case '*' : result = eval(onebig+str+twobig)/(10**(length*2))
                break;
                case '/' : result = eval(onebig+str+twobig)
            }
            return result

简单的小函数,只做了+ 、- 、* 、/四则运算,第一、二个参数为参与运算的两个数,第三个参数为运算符(+-*/),

思路是运算前用字符串处理拿掉 '.' ,运算结束后还原倍数。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网