--- title: Intl.NumberFormat slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat tags: - Internationalization - JavaScript - NumberFormat translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat ---
Объект Intl.NumberFormat
является конструктором объектов, включающих языка-зависимое форматирование чисел.
new Intl.NumberFormat([locales[, options]])
Intl.NumberFormat.call(this[, locales[, options]])
locales
Необязательный параметр. Строка с языковой меткой BCP 47, либо массив таких строк. Описание общей формы и интерпретации аргумента locales
смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_identification_and_negotiation", 1)}}. Разрешены следующие ключи расширения 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"
. Информацию по этой опции смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_negotiation", 1)}}.style
"decimal"
для простого форматирования числа, "currency"
для форматирования валюты и "percent"
для форматирования процентов; значением по умолчанию является "decimal"
.currency
"USD"
для доллара США, "EUR"
для евро или "CNY"
для китайского юаня — смотрите список кодов текущих валют и денежных средств. Свойство не имеет значения по умолчанию; если свойство style
равно "currency"
, свойство currency
также должно присутствовать.currencyDisplay
"symbol"
для использования локализованного символа валюты, например € для евро, "code"
для использования кода валюты ISO, "name"
для использования локализованного названия валюты, например "доллар США"
для доллара; значением по умолчанию является "symbol"
.useGrouping
true
и false
; значением по умолчанию является true
.Следующие свойства разбиваются на две группы: minimumIntegerDigits
, minimumFractionDigits
и maximumFractionDigits
входят в одну группу, а minimumSignificantDigits
и maximumSignificantDigits
— в другую. Если определено хотя бы одно свойство из второй группы, свойства первой группы будут проигнорированы.
minimumIntegerDigits
minimumFractionDigits
maximumFractionDigits
minimumFractionDigits
и 3; значением по умолчанию для форматирования валюты является число цифр младших единиц, определяемое в списке кодов валют ISO 4217 (2, если данный список не предоставляет такой информации); значением по умолчанию для процентного форматирования является наибольшее значение из minimumFractionDigits
и 0.minimumSignificantDigits
maximumSignificantDigits
minimumSignificantDigits
.NumberFormat
Экземпляры NumberFormat
наследуют следующие свойства из своего прототипа:
Экземпляры NumberFormat
наследуют следующие методы из своего прототипа:
При базовом использовании без определения локали возвращается строка, отформатированная с помощью локали по умолчанию с опциями по умолчанию.
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
{{Compat}}