This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Intl.NumberFormat
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since сентябрь 2017 г..
* Some parts of this feature may have varying levels of support.
ОбъектIntl.NumberFormat предоставляет возможности форматирования чисел в соответствии с языковыми правилами.
In this article
Интерактивный пример
const number = 123456.789;console.log( new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format( number, ),);// Expected output: "123.456,79 €"// The Japanese yen doesn't use a minor unitconsole.log( new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format( number, ),);// Expected output: "¥123,457"// Limit to three significant digitsconsole.log( new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format( number, ),);// Expected output: "1,23,000"Constructor
Intl.NumberFormat()Создаёт новый объект
NumberFormat.
Статические методы
Intl.NumberFormat.supportedLocalesOf()Возвращает массив, содержащий локали, которые поддерживаются без необходимости возврата к локали по умолчанию.
Свойства экземпляра
Эти свойства определены вIntl.NumberFormat.prototype и есть у всех экземпляровIntl.NumberFormat.
Intl.NumberFormat.prototype.constructorФункция-конструктор, создающая экземпляр объекта. Для экземпляров
Intl.NumberFormatначальным значением является конструкторIntl.NumberFormat.Intl.NumberFormat.prototype[@@toStringTag]Начальным значением свойства
@@toStringTagявляется строка"Intl.NumberFormat". Это свойство используется вObject.prototype.toString().
Методы экземпляра
Intl.NumberFormat.prototype.format()Функция-геттер, которая форматирует число в соответствии с локалью и настройками форматирования этого объекта
Intl.NumberFormat.Intl.NumberFormat.prototype.formatRange()Функция-геттер, которая форматирует диапазон чисел в соответствии с локалью и настройками форматирования объекта
Intl.NumberFormat, метод которого был вызван.Intl.NumberFormat.prototype.formatRangeToParts()Возвращает
массивобъектов, представляющих диапазон числовых строк по частям, которые можно использовать для пользовательского форматирования с учетом локали.Intl.NumberFormat.prototype.formatToParts()Возвращает
массивобъектов, представляющих части числа, которые могут быть использованы для пользовательского форматирования с учётом локали.Intl.NumberFormat.prototype.resolvedOptions()Возвращает новый объект со свойствами, представляющими локаль и настройки форматирования, определённые во время инициализации объекта.
Примеры
>ИспользованиеNumberFormat
При использовании без указания локали возвращается строка, отформатированная в соответствии с локалью и настройками по умолчанию.
const number = 3500;console.log(new Intl.NumberFormat().format(number));// '3,500' в локали US EnglishИспользование параметраlocales
Этот пример показывает некоторые локализованные форматы чисел. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) используя параметрlocales:
const 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:
const 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// Форматирование с единицами измеренияconsole.log( new Intl.NumberFormat("pt-PT", { style: "unit", unit: "kilometer-per-hour", }).format(50),);// 50 km/hconsole.log( (16).toLocaleString("en-GB", { style: "unit", unit: "liter", unitDisplay: "long", }),);// 16 litresПолный список настроек смотрите на страницеIntl.NumberFormat() constructor.
Спецификации
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # numberformat-objects> |