Javascript中的自定义轮数

时间:2012-07-10 15:00:33

标签: javascript jquery math

我使用带有2个精度点的十进制数(即1.38)。我想根据以下内容对数字进行舍入:

1)如果第二个精度点大于或等于8(1.38或1.39),则将其四舍五入为1.4,否则不要改变。

我如何在Javascript中执行此操作。 toFixed不能很好地工作,因为它的回合率为1.75到1.8,这不是我想要的。

2 个答案:

答案 0 :(得分:3)

这是一种相当笨重的方式:

var round = function(n) {
    var h = (n * 100) % 10;
    return h >= 8
        ? n + (10 - h) * .01
        : n;
};

答案 1 :(得分:0)

这是一个快速的方法:

function customRound(n){
  var r = (((n+.02)*10)>>>0)/10;
  return r>n?r:n;
}

console.log(customRound(1.38));// 1.4
console.log(customRound(1.37999999999));// 1.37999999999

玩得开心〜