Intl.NumberFormatは、言語にともなう数値のフォーマットが整えられるオブジェクトです。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
構文
new Intl.NumberFormat([locales[, options]])
Intl.NumberFormat.call(this[, locales[, options]])
引数
locales-
省略可能。BCP47言語タグをもつ文字列、またはそのような文字列の配列。
locales引数の一般的な形式と解釈については、Intl pageをご参照ください。つぎのUnicode拡張キーが受け入れられます。nu- 用いられる番号方式。使える値はつぎのとおりです。
"arab","arabext","bali","beng","deva","fullwide","gujr","guru","hanidec","khmr","knda","laoo","latn","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt".
options-
省略可能。つぎのプロパティの一部またはすべてを備えるオブジェクト。
localeMatcher- 使用するローケルマッチングアルゴリズム。使える値は
"lookup"か"best fit"で、デフォルトが"best fit"です。このオプションについて詳しくは、Intl pageをご参照ください。 style- 使用するフォーマットスタイル。使える値は基本の数値フォーマットが
"decimal"、通貨フォーマットは"currency"、パーセントのフォーマットには"percent"が選べます。デフォルトは"decimal"です。 currency- 使用する通貨のフォーマット。使える値はISO 4217通貨コードで、たとえば
"USD"は米国ドル、"EUR"が欧州ユーロ、"CNY"なら中国人民元を示します(「Current currency & funds code list」参照)。デフォルト値はありません。したがって、styleが"currency"の場合、currencyプロパティは必須です。 currencyDisplay- 通貨フォーマットにおける通貨の表示。使える値は3つで、
"symbol"が€などの各地域の通貨記号、"code"はISO通貨コード、"name"は"dollar"のような通貨名を表示します。デフォルトは"symbol"です。 useGrouping- 桁区切りを使うかどうか。3桁ごと、あるいはthousands/lakh/croreで区切り文字を加えます。値は
trueかfalseで、デフォルトはtrueです。
つぎのプロパティはふたつのグループに分かれます。第1に、
minimumIntegerDigitsとminimumFractionDigitsおよびmaximumFractionDigitsです。第2は、残りのminimumSignificantDigitsとmaximumSignificantDigitsになります。第2のグループからプロパティをひとつでも定めると、第1グループは無視されます。minimumIntegerDigits- 整数に使用する最小桁数。使える値は1から21までです。デフォルトは1です。
minimumFractionDigits- 小数に使用する最小桁数。使える値は0から20までです。デフォルトは、基本数値とパーセントのフォーマットが1で、通貨フォーマットはISO 4217 currency code listが提供する「minor unit」の桁数(情報のない場合は2)です。
maximumFractionDigits- 小数に使用する最大桁数。使える値は0から20までです。デフォルトは、基本数値フォーマットが
minimumFractionDigitsか3のうち大きい値で、通貨フォーマットはminimumFractionDigitsとISO 4217 currency code listが提供する「minor unit」の桁数(情報のない場合は2)のうち大きい値、パーセントフォーマットではminimumFractionDigitsか0のうち大きい値です。 minimumSignificantDigits- 使用する有効数字の最小桁数。使える値は1から21までです。デフォルトは1です。
maximumSignificantDigits- 使用する有効数字の最大桁数。使える値は1から21までです。デフォルトは
minimumSignificantDigitsの値です。
説明
プロパティ
Intl.NumberFormat.prototype- プロパティをすべてのオブジェクトに加えられます。
メソッド
Intl.NumberFormat.supportedLocalesOf()- 提供されたロケールのうち、実行時のデフォルトロケールにフォールバックせずにサポートされるものを配列に納めて返します。
NumberFormatインスタンス
プロパティ
NumberFormatインスタンスは、つぎのプロパティをプロトタイプから継承します。
Intl.NumberFormat.prototype.constructorIntl.NumberFormatへの参照Intl.NumberFormat.prototype.format- ゲッター。ローケルに応じて、この
NumberFormatオブジェクトのオプションを持つ数値をフォーマットする関数を返します。
メソッド
NumberFormatインスタンスは、つぎのメソッドをプロトタイプから継承します。
Intl.NumberFormat.prototype.resolvedOptions()- ローケルを反映しているプロパティとオブジェクトの初期化中に計算された照合オプションをもった新しいオブジェクトを返します。
例
基本的な使い方
ローケルを指定しない基本的な使い方では、デフォルトのローケルとオプションでフォーマットされた文字列が返されます。
var number = 3500; console.log(new Intl.NumberFormat().format(number)); // → '3,500' 英語(U.S.)ロケールの場合
localesを使う
この例では、地域による数値フォーマットの違いをいくつか紹介します。アプリケーションのユーザーインタフェースで使われた言語フォーマットを得るには、言語(およびフォールバック言語)をlocales引数により指定してください。
var number = 123456.789;
// ドイツではカンマを小数、ピリオドを千単位の区切りに用います
console.log(new Intl.NumberFormat('de-DE').format(number));
// → 123.456,789
// ほとんどのアラビア語圏ではアラビア数字を用います
console.log(new Intl.NumberFormat('ar-EG').format(number));
// → ١٢٣٤٥٦٫٧٨٩
// インドではthousands/lakh/crore区切りが用いられます
console.log(new Intl.NumberFormat('en-IN').format(number));
// → 1,23,456.789
// nu拡張キーにより漢数字などの番号方式が使えます
console.log(new Intl.NumberFormat('zh-Hans-CN-u-nu-hanidec').format(number));
// → 一二三,四五六.七八九
// バリ語のようにサポートされないかもしれない言語を用いる場合は
// フォールバック言語を含めます(つぎの例ではインドネシア語)
console.log(new Intl.NumberFormat(['ban', 'id']).format(number));
// → 123.456,789
optionsを使う
options引数を使うと結果がカスタマイズできます。
var number = 123456.789;
// 通貨フォーマットを用います
console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number));
// → 123.456,79 €
// 日本円にはminor unitがありません
console.log(new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(number));
// → ¥123,457
// 有効数字を3桁に狭めます
console.log(new Intl.NumberFormat('en-IN', { maximumSignificantDigits: 3 }).format(number));
// → 1,23,000
仕様
ブラウザ実装状況
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NumberFormat | Chrome 完全対応 24 | Edge 完全対応 12 | Firefox 完全対応 29 | IE 完全対応 11 | Opera 完全対応 15 | Safari 完全対応 10 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 26 | Firefox Android 完全対応 56 | Opera Android 完全対応 14 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 1.5 | nodejs ? |
NumberFormat() constructor | Chrome 完全対応 24 | Edge 完全対応 12 | Firefox 完全対応 29 | IE 完全対応 11 | Opera 完全対応 15 | Safari 完全対応 10 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 26 | Firefox Android 完全対応 56 | Opera Android 完全対応 14 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 1.5 | nodejs ? |
format | Chrome 完全対応 24 | Edge 完全対応 12 | Firefox 完全対応 29 | IE 完全対応 11 | Opera 完全対応 15 | Safari 完全対応 10 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 26 | Firefox Android 完全対応 56 | Opera Android 完全対応 14 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 1.5 | nodejs ? |
formatToParts | Chrome 完全対応 64 | Edge 完全対応 12 | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 51 | Safari 完全対応 13 | WebView Android 完全対応 64 | Chrome Android 完全対応 64 | Firefox Android 完全対応 58 | Opera Android 完全対応 47 | Safari iOS 完全対応 13 | Samsung Internet Android 完全対応 9.0 | nodejs ? |
resolvedOptions | Chrome 完全対応 24 | Edge 完全対応 12 | Firefox 完全対応 29 | IE 完全対応 11 | Opera 完全対応 15 | Safari 完全対応 10 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 26 | Firefox Android 完全対応 56 | Opera Android 完全対応 14 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 1.5 | nodejs ? |
supportedLocalesOf | Chrome 完全対応 24 | Edge 完全対応 12 | Firefox 完全対応 29 | IE 完全対応 11 | Opera 完全対応 15 | Safari 完全対応 10 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 26 | Firefox Android 完全対応 56 | Opera Android 完全対応 14 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 1.5 | nodejs ? |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応
- 実装状況不明
- 実装状況不明
- 実験的。動作が変更される可能性があります。
- 実験的。動作が変更される可能性があります。
関連情報
- Introduction: The ECMAScript Internationalization API
- Constructors
- Methods