Intl.NumberFormat
Сводка
Объект Intl.NumberFormat
является конструктором объектов, включающих языка-зависимое форматирование чисел.
Синтаксис
new Intl.NumberFormat([locales[, options]]) Intl.NumberFormat.call(this[, locales[, options]])
Параметры
locales
-
Необязательный параметр. Строка с языковой меткой BCP 47, либо массив таких строк. Описание общей формы и интерпретации аргумента
locales
смотрите на странице, посвящённой объекту Intl. Разрешены следующие ключи расширения 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. style
-
Используемый стиль форматирования. Возможными значениями являются
"decimal"
для простого форматирования числа,"currency"
для форматирования валюты и"percent"
для форматирования процентов; значением по умолчанию является"decimal"
. currency
-
Валюта, используемая при форматировании валют. Возможными значениями являются коды валют ISO 4217, например,
"USD"
для доллара США,"EUR"
для евро или"CNY"
для китайского юаня — смотрите список кодов текущих валют и денежных средств. Свойство не имеет значения по умолчанию; если свойствоstyle
равно"currency"
, свойствоcurrency
также должно присутствовать. currencyDisplay
-
Определяет, как отображать валюту при форматировании валют. Возможными значениями являются
"symbol"
для использования локализованного символа валюты, например € для евро,"code"
для использования кода валюты ISO,"name"
для использования локализованного названия валюты, например"доллар США"
для доллара; значением по умолчанию является"symbol"
. useGrouping
-
Определяет, использовать ли разделители групп разрядов, например, разделители тысяч или тысяч/лакх/крор. Возможными значениями являются
true
иfalse
; значением по умолчанию являетсяtrue
.
Следующие свойства разбиваются на две группы:
minimumIntegerDigits
,minimumFractionDigits
иmaximumFractionDigits
входят в одну группу, аminimumSignificantDigits
иmaximumSignificantDigits
— в другую. Если определено хотя бы одно свойство из второй группы, свойства первой группы будут проигнорированы.minimumIntegerDigits
-
Минимальное используемое количество цифр целой части числа. Возможными значениями являются значения от 1 до 21; значением по умолчанию является 1.
minimumFractionDigits
-
Минимальное используемое количество цифр дробной части числа. Возможными значениями являются значения от 0 до 20; значением по умолчанию для простого и процентного форматирования является 0; значением по умолчанию для форматирования валюты является число цифр младших единиц, определяемое в списке кодов валют ISO 4217 (2, если данный список не предоставляет такой информации).
maximumFractionDigits
-
Максимальное используемое количество цифр дробной части числа. Возможными значениями являются значения от 0 до 20; значением по умолчанию для простого форматирования является наибольшее значение из
minimumFractionDigits
и 3; значением по умолчанию для форматирования валюты является число цифр младших единиц, определяемое в списке кодов валют ISO 4217 (2, если данный список не предоставляет такой информации); значением по умолчанию для процентного форматирования является наибольшее значение изminimumFractionDigits
и 0. minimumSignificantDigits
-
Минимальное используемое количество значащих цифр числа. Возможными значениями являются значения от 1 до 21; значением по умолчанию является 1.
maximumSignificantDigits
-
Максимальное используемое количество значащих цифр числа. Возможными значениями являются значения от 1 до 21; значением по умолчанию является
minimumSignificantDigits
.
Описание
Свойства
Intl.NumberFormat.prototype
(en-US)-
Позволяет добавлять свойства ко всем объектам.
Методы
Intl.NumberFormat.supportedLocalesOf()
-
Возвращает массив, содержащий те из предоставленных локалей, которые поддерживаются без отката к локали по умолчанию среды выполнения.
Экземпляры объекта NumberFormat
Свойства
Экземпляры NumberFormat
наследуют следующие свойства из своего прототипа:
Методы
Экземпляры NumberFormat
наследуют следующие методы из своего прототипа:
Примеры
Пример: базовое использование
При базовом использовании без определения локали возвращается строка, отформатированная с помощью локали по умолчанию с опциями по умолчанию.
js
var number = 3500;
console.log(new Intl.NumberFormat().format(number));
// → '3,500' в локали US English
Пример: использование аргумента locales
Этот пример показывает некоторые локализованные числовые форматы. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) через аргумент locales
:
js
var number = 123456.789;
// В Германии в качестве разделителя целой и дробной части используется запятая, а в качестве разделителя разрядов - точка
console.log(new Intl.NumberFormat("de-DE").format(number));
// → 123.456,789
// В России в качестве разделителя целой и дробной части используется запятая, а в качестве разделителя разрядов - пробел
console.log(new Intl.NumberFormat("ru-RU").format(number));
// → 123 456,789
// В большинстве арабоговорящих стран используют настоящие арабские цифры
console.log(new Intl.NumberFormat("ar-EG").format(number));
// → ١٢٣٤٥٦٫٧٨٩
// В Индии используют разделители для тысяч/лакх/крор
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
:
js
var number = 123456.789;
// Запрашиваем формат валюты
console.log(
new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
number,
),
);
// → 123.456,79 €
console.log(
new Intl.NumberFormat("ru-RU", { style: "currency", currency: "RUB" }).format(
number,
),
);
// → 123 456,79 руб.
// Японская йена не использует младшие единицы
console.log(
new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
number,
),
);
// → ¥123,457
// Ограничиваем до трёх значащих цифр
console.log(
new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
number,
),
);
// → 1,23,000
Спецификации
Specification |
---|
ECMAScript Internationalization API Specification # numberformat-objects |
Совместимость с браузерами
BCD tables only load in the browser