0

精度が 2 ポイント (つまり 1.38) の 10 進数を使用しています。次のように数値を丸めたい:

1) 2 番目の精度ポイントが 8 (1.38 または 1.39) 以上の場合は、1.4 に丸めます。それ以外の場合は変更しません。

Javascriptでそれを行うにはどうすればよいですか。toFixed は、1.75 を 1.8 に丸めるため、うまく機能しません。これは私が望んでいるものではありません。

4

2 に答える 2

3

これを行うかなり不格好な方法を次に示します。

var round = function(n) {
    var h = (n * 100) % 10;
    return h >= 8
        ? n + (10 - h) * .01
        : n;
};
于 2012-07-10T15:09:49.797 に答える
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

楽しんでください〜

于 2013-07-20T03:13:00.870 に答える