JavaScript で小数点 2 桁の数値をフォーマットする 質問する

JavaScript で小数点 2 桁の数値をフォーマットする 質問する

数値を小数点以下 2 桁に丸めるコード行があります。しかし、次のような数値が表示されます: 10.8、2.4 など。これらは私が考える小数点以下 2 桁ではありません。次のコードをどのように改善すればよいでしょうか?

Math.round(price*Math.pow(10,2))/Math.pow(10,2);

10.80、2.40 などの数字が欲しいです。jQuery を使っても問題ありません。

ベストアンサー1

固定小数点表記を使用して数値をフォーマットするには、固定方法:

(10.8).toFixed(2); // "10.80"

var num = 2.4;
alert(num.toFixed(2)); // "2.40"

toFixed()文字列を返すことに注意してください。

重要: toFixed は 90% の確率で丸めを行いません。丸められた値を返しますが、多くの場合は機能しません。

例えば:

2.005.toFixed(2) === "2.00"

アップデート:

今では、Intl.NumberFormatコンストラクタ。これはECMAScript 国際化 API 仕様(ECMA402)。ブラウザのサポートはかなり良いIE11も含め、Node.jsで完全にサポートされています

const formatter = new Intl.NumberFormat('en-US', {
   minimumFractionDigits: 2,      
   maximumFractionDigits: 2,
});

console.log(formatter.format(2.005)); // "2.01"
console.log(formatter.format(1.345)); // "1.35"

toLocaleString代わりに、内部的に API を使用するメソッドを使用することもできますIntl

const format = (num, decimals) => num.toLocaleString('en-US', {
   minimumFractionDigits: 2,      
   maximumFractionDigits: 2,
});


console.log(format(2.005)); // "2.01"
console.log(format(1.345)); // "1.35"

この API は、千単位の区切りや通貨記号など、さまざまな書式設定オプションも提供します。

おすすめ記事