JavaScript Intl.NumberFormat — форматування чисел, валют і відсотків
Intl.NumberFormat форматує числа за правилами мови: валюти, відсотки, розділювачі розрядів, компактний запис.
Загальний опис
Українською тисячі розділяються нерозривним пробілом, а дробова частина — комою: 1 234,50. Англійською — навпаки: 1,234.50. Самописне форматування на цьому й ламається.
Валюта задається кодом (UAH, USD), і символ підставиться сам — разом із правильним місцем для нього.
Окремий козир — компактний запис: notation: 'compact' перетворить 1 200 000 на «1,2 млн». Це те, що зазвичай пишуть вручну й з помилками.
Об'єкт форматування варто створювати один раз і перевикористовувати: це найдорожча частина, і в циклі вона помітно гальмує.
автор: NagarD
- Порада
-
Створюй форматувальник поза циклом.
автор: NagarDnew Intl.NumberFormat()на кожній ітерації — класична причина повільного рендеру таблиці.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| NumberFormat | 24+ | 29+ | 10+ | 15+ | 12+ | 11+ |
| Переглядач | ||||
|---|---|---|---|---|
| NumberFormat | 26+ | yes | yes | 10+ |
Приклади
+ запропонувати свій приклад у пісочниці
Гривня, відсотки й компактний запис.
// створюємо ОДИН раз
const money = new Intl.NumberFormat('uk-UA', {
style: 'currency',
currency: 'UAH',
});
console.log(money.format(1234.5)); // '1 234,50 ₴'
const percent = new Intl.NumberFormat('uk-UA', { style: 'percent' });
console.log(percent.format(0.075)); // '7,5 %'
// компактний запис
const compact = new Intl.NumberFormat('uk-UA', { notation: 'compact' });
console.log(compact.format(1200000)); // '1,2 млн'
Коментарі
Коментарів ще немає — будьте першим!