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