其他分享
首页 > 其他分享> > toFixed的坑

toFixed的坑

作者:互联网

因为项目需要使用小数,所以第一时间想到了javaScript 的toFixed 方法,开始测试了一下,觉得没有问题就没管了,后来同事偶然间发现 toFixed 之后的数据不对,后来自己查阅资料才知道,toFixed的坑: 

toFixed使用的是银行家舍入规则。 银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。 简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一

于是放弃了使用toFixed处理小数,直接自己写了一个方法



     /**
      * @param num:需要转换的值
      * @param point 保留几位小数
      */

toFixedNumber: function (num, point) {
      if (isNaN(num)) {
        return null
      }
      point = Math.pow(10, point)
      num = num * point
      if (num === +num) {
        return parseInt(num + 0.5) / point
      } else {
        return +num
      }
    }

调用方法:

var a=37.524;
console.log("result:"+toFixedNumber(a,2));

 

标签:舍入,return,point,num,toFixed,四舍
来源: https://www.cnblogs.com/hspl/p/11727791.html