1. ホーム
  2. javascript

[解決済み] Javascriptで小数点以下1桁に丸めるにはどうしたらいいですか?

2022-03-20 01:03:39

質問

javascriptで数字を丸めるとき、小数点以下1文字に丸めることができますか(正しく丸めることができます)?

10, round, /10 を試しましたが、int の末尾に小数点が2つ残ってしまいます。

どのように解決するのですか?

Math.round(num * 10) / 10 が動作した場合の例を示します。

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

小数点以下が0になる場合でも、小数点以下が1つになるようにしたい場合は、...を追加します。

var fixed = rounded.toFixed(1)
// fixed is always to 1 d.p.
// 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!

EDIT: 精度付きラウンド機能を追加...

この原理を利用して、参考までに、精度を取る便利なラウンド関数を紹介すると...。

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"