JavaScriptで数値を見やすくフォーマットしたい場合、`Intl.NumberFormat()`を使用すると簡単に実装できます。この記事では、`Intl.NumberFormat()`の基本的な使い方から実践的な例まで解説します。
基本的な使い方
最もシンプルな使用方法は以下の通りです:
const number = 1234567;
const formatter = new Intl.NumberFormat();
console.log(formatter.format(number)); // 出力: 1,234,567ロケール(言語)の指定
国や地域に応じた数値表示が可能です:
// 日本語表記
const jpFormatter = new Intl.NumberFormat('ja-JP');
console.log(jpFormatter.format(1234567)); // 出力: 1,234,567
// アメリカ英語表記
const usFormatter = new Intl.NumberFormat('en-US');
console.log(usFormatter.format(1234567)); // 出力: 1,234,567小数点以下の桁数指定
小数点以下の桁数を制御できます:
const number = 1234.5678;
const formatter = new Intl.NumberFormat('ja-JP', {
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
console.log(formatter.format(number)); // 出力: 1,234.57通貨表示
金額表示も簡単に実装できます:
const price = 1234567;
const formatter = new Intl.NumberFormat('ja-JP', {
style: 'currency',
currency: 'JPY'
});
console.log(formatter.format(price)); // 出力: ¥1,234,567パーセント表示
パーセンテージの表示も可能です:
const ratio = 0.8543;
const formatter = new Intl.NumberFormat('ja-JP', {
style: 'percent',
minimumFractionDigits: 1
});
console.log(formatter.format(ratio)); // 出力: 85.4%単位表示
計測単位を付加することもできます:
const length = 100;
const formatter = new Intl.NumberFormat('ja-JP', {
style: 'unit',
unit: 'meter'
});
console.log(formatter.format(length)); // 出力: 100 m主なオプション一覧
`Intl.NumberFormat()`で使用できる主なオプションをまとめました:
- `style`: 'decimal'(通常), 'currency'(通貨), 'percent'(パーセント), 'unit'(単位)
- `currency`: 通貨コード('JPY', 'USD'など)
- `minimumFractionDigits`: 小数点以下の最小桁数
- `maximumFractionDigits`: 小数点以下の最大桁数
- `useGrouping`: 桁区切りの使用(true/false)
ブラウザサポート
`Intl.NumberFormat()`は、モダンブラウザで広くサポートされています:
- Chrome 24以降
- Firefox 29以降
- Safari 10以降
- Edge 12以降
まとめ
`Intl.NumberFormat()`を使用することで、JavaScriptでの数値フォーマットが簡単に実装できます。ロケールに応じた表示や、通貨、パーセント、単位などの表示に対応しており、実用的なアプリケーション開発に役立ちます。
エラーを防ぐためには、以下の点に注意しましょう:
1. 正しいロケール文字列を指定する
2. 適切なオプションを設定する
3. 有効な数値を渡す
このAPIを活用することで、ユーザーフレンドリーな数値表示を実現できます。