js中进行四舍五入精确计算

背景:最近,开发一个页面,需要实现双边缴费的功能,涉及到运用js进行四舍五入的精确计算,在此记录一下。

一、最初方案

       对于js的四舍五入计算方法,JavaScript toFixed() 方法,toFixed() 方法可把 Number 四舍五入为指定小数位数的数字,

语法:NumberObject.toFixed(num)。

      但是,后来发现,当遇到1538.87*0.5=769.435时,(769.435).toFixed(2)等于769.43,无法按照正常四舍五入进一位,等于769.44。出现异常情况如下图所示:

    所以,此时需要对数字情况进行分类,使得所有情况都可以达到四舍五入的精确计算。

二、对数字进行四舍五入的精确计算

      具体方法如下:

 var unitPayProportion = data058.item.unitPayProportion;
 //将unitPrem四舍五入精确计算
 var b = (data.item.totalPremium * unitPayProportion).toString().split('.')[1];
 var a = (data.item.totalPremium * unitPayProportion).toString().split('.')[0];
 if (b) {
    if (b && b.length >= 3) {
        b = b.substring(0, 3)
        var c = b + '1';
        unitPrem = Number(a + '.' + c);
     } else {
        unitPrem = (data.item.totalPremium * unitPayProportion);
     }
  } else {
     unitPrem = (data.item.totalPremium * unitPayProportion);
  }
     unitPrem = unitPrem.toFixed(2);

三、实现功能效果图如下:

版权声明:本文为博主原创文章,未经博主允许不得转载 。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值