精度が 2 ポイント (つまり 1.38) の 10 進数を使用しています。次のように数値を丸めたい:
1) 2 番目の精度ポイントが 8 (1.38 または 1.39) 以上の場合は、1.4 に丸めます。それ以外の場合は変更しません。
Javascriptでそれを行うにはどうすればよいですか。toFixed は、1.75 を 1.8 に丸めるため、うまく機能しません。これは私が望んでいるものではありません。
精度が 2 ポイント (つまり 1.38) の 10 進数を使用しています。次のように数値を丸めたい:
1) 2 番目の精度ポイントが 8 (1.38 または 1.39) 以上の場合は、1.4 に丸めます。それ以外の場合は変更しません。
Javascriptでそれを行うにはどうすればよいですか。toFixed は、1.75 を 1.8 に丸めるため、うまく機能しません。これは私が望んでいるものではありません。
これを行うかなり不格好な方法を次に示します。
var round = function(n) {
var h = (n * 100) % 10;
return h >= 8
? n + (10 - h) * .01
: n;
};
簡単な方法は次のとおりです。
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
楽しんでください〜