JavaScript を使用して数値をフォーマットしたい。
例えば:
10 => 10.00
100 => 100.00
1000 => 1,000.00
10000 => 10,000.00
100000 => 100,000.00
ベストアンサー1
組み込みコードを使用する場合は、toLocaleString()
とminimumFractionDigits
。
ブラウザの互換性最初にこの回答を書いたときは、拡張オプションはtoLocaleString()
限られていましたが、現在のステータスは良好です。Node.jsを使用している場合、あなたnpm install
はintl
パッケージ。
var value = (100000).toLocaleString(
undefined, // leave undefined to use the visitor's browser
// locale or a string like 'en-US' to override it.
{ minimumFractionDigits: 2 }
);
console.log(value);
数値の書式設定は文化によって異なります。出力で文字列の比較を行うのでない限り、1undefined
訪問者のブラウザが最も使い慣れている書式設定を使用するようにするのが礼儀です。2
// Demonstrate selected international locales
var locales = [
undefined, // Your own browser
'en-US', // United States
'de-DE', // Germany
'ru-RU', // Russia
'hi-IN', // India
'de-CH', // Switzerland
];
var n = 100000;
var opts = { minimumFractionDigits: 2 };
for (var i = 0; i < locales.length; i++) {
console.log(locales[i], n.toLocaleString(locales[i], opts));
}
上記とは異なる形式の文化圏にお住まいの場合は、編集この投稿にロケール コードを追加してください。
1使用すべきではありません。2
当然ですが、使用しないでください通貨として現地の為替レートに換算していない限り、のような表示になります{style: 'currency', currency: 'JPY'}
。実際は 300 ドルなのに、Web サイトで価格が 300 円と表示されるのは望ましくありません。実際の e コマース サイトでは、このような間違いを犯すことがあります。