JavaScript で小数点第 1 位を四捨五入するにはどうすればよいでしょうか? 質問する

JavaScript で小数点第 1 位を四捨五入するにはどうすればよいでしょうか? 質問する

JavaScript で数値を小数点以下 1 文字に丸めることができますか (適切に丸められます)?

*10、round、/10 を試しましたが、int の末尾に小数点が 2 桁残ります。

ベストアンサー1

Math.round(num * 10) / 10動作します。ここに例があります...

var number = 12.3456789
var rounded = Math.round(number * 10) / 10
// rounded is 12.3

小数点以下 1 桁にしたい場合 (0 になる場合も含む) は、以下を追加します...

var fixed = rounded.toFixed(1)
// 'fixed' is always to one decimal point
// NOTE: .toFixed() returns a string!

// To convert back to number format
parseFloat(number.toFixed(2))
// 12.34
// but that will not retain any trailing zeros

// So, just make sure it is the last step before output,
// and use a number format during calculations!

この原理を参考に、精度を取る便利な小さな丸め関数を次に示します...

function round(value, precision) {
    var multiplier = Math.pow(10, precision || 0);
    return Math.round(value * multiplier) / multiplier;
}

... 使用法 ...

round(12345.6789, 2) // 12345.68
round(12345.6789, 1) // 12345.7

... デフォルトでは最も近い整数 (精度 0) に丸められます...

round(12345.6789) // 12346

... 最も近い 10 または 100 などに丸めるために使用できます...

round(12345.6789, -1) // 12350
round(12345.6789, -2) // 12300

...そして負の数を正しく処理します...

round(-123.45, 1) // -123.4
round(123.45, 1) // 123.5

... toFixed と組み合わせて、文字列として一貫してフォーマットすることもできます...

round(456.7, 2).toFixed(2) // "456.70"

おすすめ記事