Вебсправочник
Справочник JavaScript

Intl.NumberFormat: локализованное отображение чисел

Intl.NumberFormat форматирует числа по правилам выбранной локали и параметрам отображения.

Назначение

Intl.NumberFormat форматирует числа по правилам выбранной локали и параметрам отображения.

Как это работает

Форматтер можно создать один раз и использовать повторно. formatToParts возвращает структурированные части, позволяя отличить десятичный разделитель, дробь и группировку без ручного разбора всей строки.

Пример

const formatter=new Intl.NumberFormat("ru-RU",{minimumFractionDigits:2,maximumFractionDigits:2});
const parts=formatter.formatToParts(1234.5);
console.assert(parts.find(p=>p.type==="decimal").value===",");
console.assert(parts.find(p=>p.type==="fraction").value==="50");

Что должно получиться

Форматтер использует запятую как десятичный разделитель и показывает два дробных знака. Числовое значение остаётся отдельным от его локализованного представления.

Граница применения и частая ошибка

Не преобразуйте локализованную строку обратно в число через простую замену запятой. Группировка, пробелы, знаки и системы цифр зависят от локали; ввод требует отдельного контракта.

Самостоятельная проверка

Сравните ru-RU и en-US для одного числа. Проверьте структуру formatToParts вместо предположения о конкретном обычном пробеле между группами разрядов.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.