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
Позволяет добавлять свойства ко всем объектам.

Методы

Intl.NumberFormat.supportedLocalesOf()
Возвращает массив, содержащий те из предоставленных локалей, которые поддерживаются без отката к локали по умолчанию среды выполнения.

Экземпляры объекта NumberFormat

Свойства

Экземпляры NumberFormat наследуют следующие свойства из своего прототипа:

Intl.NumberFormat.prototype.constructor
Ссылка на Intl.NumberFormat.
Intl.NumberFormat.prototype.format
Геттер; возвращает функцию, форматирующую число согласно локали и опциям форматирования этого объекта NumberFormat.

Методы

Экземпляры NumberFormat наследуют следующие методы из своего прототипа:

Intl.NumberFormat.prototype.resolvedOptions()
Возвращает новый объект со свойствами, отражающими локаль и опции сравнения, вычисленные при инициализации объекта.

Примеры

Пример: базовое использование

При базовом использовании без определения локали возвращается строка, отформатированная с помощью локали по умолчанию с опциями по умолчанию.

var number = 3500;

console.log(new Intl.NumberFormat().format(number));
// → '3,500' в локали US English

Пример: использование аргумента locales

Этот пример показывает некоторые локализованные числовые форматы. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) через аргумент locales:

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:

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

Спецификации

Спецификация Статус Комментарии
ECMAScript Internationalization API 1.0 (ECMA-402)
Определение 'Intl.NumberFormat' в этой спецификации.
Стандарт Изначальное определение.

Совместимость с браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Базовая поддержка 24 29 (29) 11 15 Нет
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Базовая поддержка Нет 26 Нет
ошибка 864843
Нет Нет Нет

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: Mingun
 Обновлялась последний раз: Mingun,