Intl.NumberFormat() コンストラクター

この記事は翻訳が完了していません。 この記事の翻訳にご協力ください

Intl.NumberFormat() コンストラクターは、言語に依存した数値の書式を有効にするオブジェクトを生成します。

構文

new Intl.NumberFormat([locales[, options]])

引数

locales Optional

BCP 47 言語タグを持つ文字列、またはそのような文字列の配列。 locales 引数の一般的な形式と解釈については、 Intl のページを参照してください。次の Unicode 拡張キーが許可されています。

nu
使用される数値システムです。指定可能な値には "adlm", "ahom", "arab", "arabext", "bali", "beng", "bhks", "brah", "cakm", "cham", "deva", "diak", "fullwide", "gong", "gonm", "gujr", "guru", "hanidec", "hmng", "hmnp", "java", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho" があります。
options Optional

以下のプロパティのすべてまたは一部を持つオブジェクトです。

compactDisplay
notation が "compact" の場合のみ使用されます。 "short" (既定値) または "long" のどちらかを取ります。
currency
通貨の書式で使用するための通貨です。利用可能な値は ISO 4217 通貨コードであり、例えば米ドルは "USD"、ユーロは "EUR"、日本円には "JPY" です。 — Current currency & funds code list を参照してください。既定値はありません。 style が "currency" である場合、 currency プロパティを提供する必要があります。
currencyDisplay
通貨の書式で通貨を表示する方法です。利用可能な値は次の通りです。
  • "symbol" はローカライズされた通貨記号、例えば € などを使用します。これが既定値です。
  • "narrowSymbol" は短い形式の記号を使用します ("US$100" ではなく "$100")。
  • "code" は ISO 通貨コードを使用します。
  • "name" はローカライズされた通貨名、例えば "dollar" を使用します。
currencySign
多くのロケールでは、会計の書式はマイナス記号を追加する代わりに数値を括弧で囲みます。この形式は currencySign オプションを "accounting" に設定すると有効になります。既定値は "standard" です。
localeMatcher
使用するロケール比較アルゴリズムです。使用可能な値は "lookup" および "best fit" です。既定値は "best fit" です。このオプションについての情報は、 Intl page を参照してください。
notation
数値を表示するための書式です。既定値は "standard" です。
  • "standard" 通常の数値の書式です。
  • "scientific" return the order-of-magnitude for formatted number.
  • "engineering" return the exponent of ten when divisible by three
  • "compact" string representing exponent, defaults is using the "short" form.
numberingSystem
Numbering System. Possible values include: "arab", "arabext", " bali", "beng", "deva", "fullwide", " gujr", "guru", "hanidec", "khmr", " knda", "laoo", "latn", "limb", "mlym", " mong", "mymr", "orya", "tamldec", " telu", "thai", "tibt".
signDisplay
When to display the sign for the number; defaults to "auto"
  • "auto" sign display for negative numbers only
  • "never" never display sign
  • "always" always display sign
  • "exceptZero" sign display for positive and negative numbers, but not zero
style
The formatting style to use , the default is "decimal".
  • "decimal" for plain number formatting.
  • "currency" for currency formatting.
  • "percent" for percent formatting
  • "unit" for unit formatting
unit
The unit to use in unit formatting, Possible values are core unit identifiers, defined in UTS #35, Part 2, Section 6. A subset of units from the full list was selected for use in ECMAScript. Pairs of simple units can be concatenated with "-per-" to make a compound unit. There is no default value; if the style is "unit", the unit property must be provided.
unitDisplay
The unit formatting style to use in unit formatting, the defaults is "short".
  • "long" (e.g., 16 litres)
  • "short" (e.g., 16 l)
  • "narrow" (e.g., 16l)
useGrouping
Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators. Possible values are true and false; the default is true.

The following properties fall into two groups: minimumIntegerDigits, minimumFractionDigits, and maximumFractionDigits in one group, minimumSignificantDigits and maximumSignificantDigits in the other. If at least one property from the second group is defined, then the first group is ignored.

minimumIntegerDigits
The minimum number of integer digits to use. Possible values are from 1 to 21; the default is 1.
minimumFractionDigits
The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).
maximumFractionDigits
The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information); the default for percent formatting is the larger of minimumFractionDigits and 0.
minimumSignificantDigits
The minimum number of significant digits to use. Possible values are from 1 to 21; the default is 1.
maximumSignificantDigits
The maximum number of significant digits to use. Possible values are from 1 to 21; the default is 21.

Basic usage

In basic use without specifying a locale, a formatted string in the default locale and with default options is returned.

let amount = 3500;

console.log(new Intl.NumberFormat().format(amount));
// → '3,500' if in US English locale

Decimal and percent formatting

let amount = 3500;

new Intl.NumberFormat('en-US', {style: 'decimal'}).format(amount); 
// → '3,500'
new Intl.NumberFormat('en-US', {style: 'percent'}).format(amount);
// → '350,000%'

Unit formatting

If the style is 'unit', a unit property must be provided. Optionally, unitDisplay controls the unit formatting.

let amount = 3500;

new Intl.NumberFormat('en-US', {style: 'unit', unit: 'liter'}).format(amount);
// → '3,500 L'

new Intl.NumberFormat('en-US', {style: 'unit', unit: 'liter', unitDisplay: 'long'}).format(amount); 
// → '3,500 liters'

Currency formatting

If the style is 'currency', a currency property must be provided. Optionally, currencyDisplay and currencySign control the unit formatting.

let amount = -3500;
new Intl.NumberFormat('en-US', {style: 'currency', currency: 'USD'}).format(amount); 
// → '-$3,500.00'

new Intl.NumberFormat('bn', {
  style: 'currency',
  currency: 'USD',
  currencyDisplay: 'name'
}).format(amount);
// →  '-3,500.00 US dollars'

new Intl.NumberFormat('bn', {
  style: 'currency', 
  currency: 'USD',
  currencySign: 'accounting' 
}).format(amount);
// →  '($3,500.00)'

Scientific, engineering or compact notations

Scientific and compact notation are represented by the notation option and can be formatted like this:

new Intl.NumberFormat('en-US', { notation: "scientific" }).format(987654321);
// → 9.877E8

new Intl.NumberFormat('pt-PT', { notation: "scientific" }).format(987654321);
// → 9,877E8

new Intl.NumberFormat('en-GB', { notation: "engineering" }).format(987654321);
// → 987.654E6

new Intl.NumberFormat('de', { notation: "engineering" }).format(987654321);
// → 987,654E6

new Intl.NumberFormat('zh-CN', { notation: "compact" }).format(987654321); 
// → 9.9亿

new Intl.NumberFormat('fr', {
  notation: "compact", 
  compactDisplay: "long"
}).format(987654321); 
// → 988 millions

new Intl.NumberFormat('en-GB', {
  notation: "compact",
  compactDisplay: "short" 
}).format(987654321);
// → 988M

Displaying signs

Display a sign for positive and negative numbers, but not zero:

new Intl.NumberFormat("en-US", {
    style: "percent",
    signDisplay: "exceptZero"
}).format(0.55);
// → '+55%'

Note that when the currency sign is "accounting", parentheses might be used instead of a minus sign:

new Intl.NumberFormat('bn', { 
  style: 'currency', 
  currency: 'USD', 
  currencySign: 'accounting',
  signDisplay: 'always'
}).format(-3500);

// → '($3,500.00)'

仕様書

仕様書
ECMAScript Internationalization API (ECMA-402)
Intl.NumberFormat constructor の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
NumberFormat() constructorChrome 完全対応 24Edge 完全対応 12Firefox 完全対応 29IE 完全対応 11Opera 完全対応 15Safari 完全対応 10WebView Android 完全対応 4.4Chrome Android 完全対応 25Firefox Android 完全対応 56Opera Android 完全対応 14Safari iOS 完全対応 10Samsung Internet Android 完全対応 1.5nodejs 完全対応 13.0.0
完全対応 13.0.0
部分対応 0.12
補足
補足 Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the NumberFormat instance silently falls back to en-US. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.
compactDisplay optionChrome 完全対応 77Edge 完全対応 79Firefox 完全対応 78IE 未対応 なしOpera 完全対応 64Safari 未対応 なしWebView Android 完全対応 77Chrome Android 完全対応 77Firefox Android 未対応 なしOpera Android 完全対応 55Safari iOS 未対応 なしSamsung Internet Android 完全対応 12.0nodejs 完全対応 12.11.0
currencySign optionChrome 完全対応 77Edge 完全対応 79Firefox 完全対応 78IE 未対応 なしOpera 完全対応 64Safari 未対応 なしWebView Android 完全対応 77Chrome Android 完全対応 77Firefox Android 未対応 なしOpera Android 完全対応 55Safari iOS 未対応 なしSamsung Internet Android 完全対応 12.0nodejs 完全対応 12.11.0
notation optionChrome 完全対応 77Edge 完全対応 79Firefox 完全対応 78IE 未対応 なしOpera 完全対応 64Safari 未対応 なしWebView Android 完全対応 77Chrome Android 完全対応 77Firefox Android 未対応 なしOpera Android 完全対応 55Safari iOS 未対応 なしSamsung Internet Android 完全対応 12.0nodejs 完全対応 12.11.0
signDisplay optionChrome 完全対応 77Edge 完全対応 79Firefox 完全対応 78IE 未対応 なしOpera 完全対応 64Safari 未対応 なしWebView Android 完全対応 77Chrome Android 完全対応 77Firefox Android 未対応 なしOpera Android 完全対応 55Safari iOS 未対応 なしSamsung Internet Android 完全対応 12.0nodejs 完全対応 12.11.0
unit optionChrome 完全対応 77Edge 完全対応 79Firefox 完全対応 78IE 未対応 なしOpera 完全対応 64Safari 未対応 なしWebView Android 完全対応 77Chrome Android 完全対応 77Firefox Android 未対応 なしOpera Android 完全対応 55Safari iOS 未対応 なしSamsung Internet Android 完全対応 12.0nodejs 完全対応 12.11.0
unitDisplay optionChrome 完全対応 77Edge 完全対応 79Firefox 完全対応 78IE 未対応 なしOpera 完全対応 64Safari 未対応 なしWebView Android 完全対応 77Chrome Android 完全対応 77Firefox Android 未対応 なしOpera Android 完全対応 55Safari iOS 未対応 なしSamsung Internet Android 完全対応 12.0nodejs 完全対応 12.11.0

凡例

完全対応  
完全対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。

関連情報