Intl.NumberFormat
Форматирует числа, валюты, проценты и единицы измерения по правилам языка.
Доступно с: ES2015 (Intl)
Синтаксис
new Intl.NumberFormat(locales, options)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| locales | string | Необязательный. Язык и регион, например en-US или de-DE. |
| options | object | Необязательный. style (decimal, currency, percent, unit), currency, unit, notation, minimumFractionDigits, maximumFractionDigits. |
Возвращаемое значение
Intl.NumberFormatОбъект с методом format().
Примеры
Цены в разных валютах:
const usd = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
const eur = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' });
console.log(usd.format(1234.5));
console.log(eur.format(1234.5));Результат:
$1,234.50
1.234,50 €Компактная запись и единицы измерения:
console.log(new Intl.NumberFormat('en-US', { notation: 'compact' }).format(1250000));
console.log(new Intl.NumberFormat('en-US', { style: 'unit', unit: 'kilometer-per-hour' }).format(90));Результат:
1.3M
90 km/hКоличество знаков после точки:
const formatter = new Intl.NumberFormat('en-US', { maximumFractionDigits: 1 });
console.log(formatter.format(3.14159));
console.log(formatter.format(2));Результат:
3.1
2Примечания
В немецком и русском форматах разделитель разрядов — пробел или точка, а дробной части — запятая. Такие строки нельзя снова превратить в число через Number(): форматируйте только для показа.
См. также
- Number.prototype.toLocaleString — Форматирует число по правилам языка: разделители разрядов, валюта, проценты.
- Number.prototype.toFixed — Форматирует число с заданным количеством знаков после запятой.
- Intl.PluralRules — Выбирает форму слова для числа: 1 file, 2 files.
Вопросы и ответы по теме
В учебнике
- Форматирование: Intl — Форматирование чисел, денег, дат и окончаний слов в JavaScript с учётом языка: toLocaleString, Intl.NumberFormat, Intl.DateTimeFormat и Intl.PluralRules.