js 保留n位小数

    学习js的都知道,在js里0.1+0.2 != 0.3;而这种情况不只是存在于加法里,乘法里同样存在这种问题。所以只能使用.toFixed()控制小数点后位数来解决这个问题。但是由于有可能会存在0.15+0.15 = 0.30的情况(部分公司产品和客户会介意0.30比0.3多了一个0)。所以封装了一下方法。

//value--数值  dotNum--保留几位小数
function dotNumber(value,dotNum){
    let f_x = parseFloat(value);
    if(isNaN(f_x)){
        return 0;
    }
    let isDot = f_x.toString().indexOf('.');
    if(isDot > -1){
        f_x = f_x.toFixed(dotNum);
        let arr = f_x.toString().split('.');
        arr[0] += '.';
        for(let j = dotNum - 1;j >= 0; j--){
            if(arr[1][j] == 0){
                arr[1].slice(0,-1);
            }else{
                break;
            }
        }
        for(let i = 0;i < arr[1].length;i++){
            arr[0] += arr[1][i];
        }
        return arr[0];
    }else{
        return f_x;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值