Intl.NumberFormat
Базовый уровень Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2017 года.
Объект Intl.NumberFormat обеспечивает форматирование чисел с учетом языка.
Попробуйте
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 unit
console.log(
new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
number,
),
);
// Expected output: "¥123,457"
// Limit to three significant digits
console.log(
new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
number,
),
);
// Expected output: "1,23,000"
Конструктор
-
Intl.NumberFormat() - Создает новый объект
NumberFormat.
Статические методы
-
Intl.NumberFormat.supportedLocalesOf() - Возвращает массив, содержащий те из предоставленных локалей, которые поддерживаются без необходимости возврата к локали по умолчанию среды выполнения.
Свойства экземпляра
Эти свойства определены в Intl.NumberFormat.prototype и используются всеми экземплярами Intl.NumberFormat.
-
Intl.NumberFormat.prototype.constructor - Функция-конструктор, создавшая объект-экземпляр. Для экземпляров
Intl.NumberFormatначальным значением является конструкторIntl.NumberFormat. -
Intl.NumberFormat.prototype[Symbol.toStringTag] - Начальное значение свойства
[Symbol.toStringTag]— это строка"Intl.NumberFormat". Это свойство используется вObject.prototype.toString().
Методы экземпляра
-
Intl.NumberFormat.prototype.format() - Функция-геттер, которая форматирует число в соответствии с локалью и параметрами форматирования этого объекта
Intl.NumberFormat. -
Intl.NumberFormat.prototype.formatRange() - Функция-геттер, которая форматирует диапазон чисел в соответствии с локалью и параметрами форматирования объекта
Intl.NumberFormat, из которого вызывается метод. -
Intl.NumberFormat.prototype.formatRangeToParts() - Возвращает
Arrayобъектов, представляющих диапазон числовых строк по частям, которые можно использовать для пользовательского форматирования с учетом локали. -
Intl.NumberFormat.prototype.formatToParts() - Возвращает
Arrayобъектов, представляющих числовую строку по частям, которые можно использовать для пользовательского форматирования с учетом локали. -
Intl.NumberFormat.prototype.resolvedOptions() - Возвращает новый объект со свойствами, отражающими локаль и параметры сопоставления, рассчитанные при инициализации объекта.
Примеры
Базовое использование
При базовом использовании без указания локали возвращается отформатированная строка в локали по умолчанию и с настройками по умолчанию.
const number = 3500; console.log(new Intl.NumberFormat().format(number)); // '3,500' if in US English locale
Использование локалей
Этот пример показывает некоторые различия в локализованных форматах чисел. Чтобы получить формат языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, некоторые резервные языки), используя аргумент locales:
const number = 123456.789;
// German uses comma as decimal separator and period for thousands
console.log(new Intl.NumberFormat("de-DE").format(number));
// 123.456,789
// Arabic in most Arabic speaking countries uses real Arabic digits
console.log(new Intl.NumberFormat("ar-EG").format(number));
// ١٢٣٤٥٦٫٧٨٩
// India uses thousands/lakh/crore separators
console.log(new Intl.NumberFormat("en-IN").format(number));
// 1,23,456.789
// the nu extension key requests a numbering system, e.g. Chinese decimal
console.log(new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(number));
// 一二三,四五六.七八九
// when requesting a language that may not be supported, such as
// Balinese, include a fallback language, in this case Indonesian
console.log(new Intl.NumberFormat(["ban", "id"]).format(number));
// 123.456,789
Использование опций
Результаты можно настроить с помощью аргумента options:
const number = 123456.789;
// request a currency format
console.log(
new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
number,
),
);
// 123.456,79 €
// the Japanese yen doesn't use a minor unit
console.log(
new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
number,
),
);
// ¥123,457
// limit to three significant digits
console.log(
new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
number,
),
);
// 1,23,000
// Formatting with units
console.log(
new Intl.NumberFormat("pt-PT", {
style: "unit",
unit: "kilometer-per-hour",
}).format(50),
);
// 50 km/h
console.log(
(16).toLocaleString("en-GB", {
style: "unit",
unit: "liter",
unitDisplay: "long",
}),
);
// 16 litres
Полный список опций см. на странице конструктора Intl.NumberFormat().
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
NumberFormat |
24 |
12 |
29 |
15 |
10 |
25 |
56 |
14 |
10 |
1.5 |
4.4 |
10 |
1.0.0 |
1.8 |
0.12.0До версии 13.0.0 по умолчанию доступны только данные локали дляen-US. Дополнительную информацию см. в конструкторе NumberFormat(). |
NumberFormat |
24 |
12 |
29 |
15 |
10 |
25 |
56 |
14 |
10 |
1.5 |
4.4 |
10 |
1.0.0 |
1.8 |
0.12.0 |
format |
24 |
12До Edge 18 числа округляются до 15 десятичных знаков. Например,new Intl.NumberFormat('en-US').format(1000000000000005) возвращает "1,000,000,000,000,010". |
29 |
15 |
10 |
25 |
56 |
14 |
10 |
1.5 |
4.4 |
10 |
1.0.0 |
1.8 |
0.12.0До версии 13.0.0 по умолчанию доступны только данные локали дляen-US. Дополнительную информацию см. в конструкторе NumberFormat(). |
formatRange |
106 |
106 |
116 |
92 |
15.4 |
106 |
116 |
72 |
15.4 |
20.0 |
106 |
15.4 |
1.0.3 |
No |
19.0.0 |
formatRangeToParts |
106 |
106 |
116 |
92 |
15.4 |
106 |
116 |
72 |
15.4 |
20.0 |
106 |
15.4 |
1.0.3 |
No |
19.0.0 |
formatToParts |
64 |
12 |
58 |
51 |
13 |
64 |
58 |
47 |
13 |
9.0 |
64 |
13 |
1.0.0 |
1.8 |
10.0.0До версии 13.0.0 по умолчанию доступны только данные локали дляen-US. Дополнительную информацию см. в конструкторе NumberFormat(). |
resolvedOptions |
24 |
12 |
29 |
15 |
10 |
25 |
56 |
14 |
10 |
1.5 |
4.4 |
10 |
1.0.0 |
1.8 |
0.12.0До версии 13.0.0 по умолчанию доступны только данные локали дляen-US. Дополнительную информацию см. в конструкторе NumberFormat(). |
supportedLocalesOf |
24 |
12 |
29 |
15 |
10 |
25 |
56 |
14 |
10 |
1.5 |
4.4 |
10 |
1.0.0 |
1.8 |
13.0.0
0.12.0–13.0.0До версии 13.0.0 по умолчанию доступны только данные локали дляen-US. Чтобы сделать полные данные ICU (локали) доступными до версии 13, см. документацию Node.js по опции --with-intl и способам предоставления данных. |
Смотрите также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat