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

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

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

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

转载于:https://www.cnblogs.com/superjsman/p/10049528.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值