js的.toFixed(fixed)在chrome中不是真正的四舍五入, 比如:

1.255.toFixed(2)
1.25

1.215.toFixed(2)
1.22

记录一下自己造的轮子:

function roundHalfUp(num, fixed){
    let numStr = num.toString();
    let decimalPlaces = numStr.indexOf('.');
    let fixedIdx = decimalPlaces + fixed;
    if(decimalPlaces <= -1 || numStr.length <= (fixedIdx + 1)){
        return num;
    }
    let result = parseFloat(numStr.slice(0, fixedIdx + 1));
    if(numStr.charAt(fixedIdx + 1) < '5'){
        return result;
    } else {
        return result + Math.pow(10.0, -1*fixed);
    }
}

 测试一下:

roundHalfUp(1.215, 2)
1.22
roundHalfUp(1.214, 2)
1.21
roundHalfUp(1.254, 2)
1.25
roundHalfUp(1.255, 2)
1.26

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-14
  • 2021-06-05
  • 2021-06-02
  • 2022-01-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案