Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как отформатировать число с разделителями

Короткий ответ

Метод toLocaleString() форматирует число по правилам указанного языка:

console.log((1234567.891).toLocaleString('en-US'));

Результат:

1,234,567.891

Знаки после запятой

Второй аргумент задаёт точность:

console.log((1234.5).toLocaleString('en-US', { minimumFractionDigits: 2 }));

Результат:

1,234.50

Валюта

Формат currency добавляет знак валюты в правильном месте:

console.log((1234.5).toLocaleString('en-US', { style: 'currency', currency: 'USD' }));

Результат:

$1,234.50

Короткая запись

Запись compact превращает большие числа в 1.2K или 3.4M:

const short = new Intl.NumberFormat('en-US', { notation: 'compact' });
 
console.log(short.format(1234), short.format(3400000));

Результат:

1.2K 3.4M

Частая ошибка

Без аргумента с языком toLocaleString() использует язык системы пользователя, и результат отличается от компьютера к компьютеру. Передавайте язык явно:

console.log((1234567.5).toLocaleString('en-US'));
console.log((1234567.5).toLocaleString('de-DE'));

Результат:

1,234,567.5
1.234.567,5

Функции из этого ответа

  • Number.prototype.toLocaleString — Форматирует число по правилам языка: разделители разрядов, валюта, проценты.
  • Intl.NumberFormat — Форматирует числа, валюты, проценты и единицы измерения по правилам языка.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.