intermediate

Форматирование чисел

Форматируйте числа, валюту, проценты, единицы, разделители и правила округления по локали и бизнес-смыслу.

Форматирование чисел — группировка цифр, десятичные разделители, валюты, проценты и единицы по локали. Базовый API — `Intl.NumberFormat`; правила учёта (minor units, rounding) — из бизнес-требований.

					new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(1234.5);
// "1.234,50 €"

new Intl.NumberFormat('en-US', { style: 'percent', maximumFractionDigits: 1 }).format(0.847);
// "84.7%"
				

| Вопрос | Заметка | |--------|---------| | Currency | ISO 4217; zero-decimal валюты (JPY) | | Rounding | Bankers vs away-from-zero — зафиксируйте политику | | Compact notation | `notation: 'compact'` для дашбордов | | Парсинг ввода | Locale-aware parser, не один `parseFloat` |

Не хардкодьте `,` или `.` как разделители тысяч/десятичных в общих компонентах.

На интервью: деньги в minor units; crypto vs fiat; согласованность SSR formatting; обновления CLDR в окружениях.

Типовые ошибки: float для денег; позиция символа валюты; server numbers с неверной locale header; неверное удаление разделителей перед parse.

Компромисс — простые шаблоны против корректного финансового и аналитического UI worldwide.

Чеклист:

  • Формат с явной locale + currency/options.
  • Деньги в minor units или decimal type с политикой.
  • Парсинг locale-aware утилитами.
  • Тест de-DE, en-US и одной RTL-локали.