Для форматирования чисел в Javascript используется класс Intl.NumberFormat. У него два параметра: locales и options. Параметр locales — строковое значение или массив строк с языковой меткой (например: "en-GB" или "ru-RU" ). Параметр options — это объект с опциями форматирования.
В объекте options можно указать следующие свойства:
localeMatcher
Алгоритм сопоставления локалей. Возможные значения:
"lookup",
"best fit". По умолчанию —
"best fit".
style
Стиль форматирования. Возможные значения:
"decimal" (форматирование обычного числа),
"currency" (форматирование валют),
"percent" (форматирование процентов). По умолчанию —
"decimal".
currency
Валюта, используемая для форматирования валют. Для рубля ставить в
"RUB".
currencyDisplay
Способ отображения валют. Возможные значения:
"symbol" — использовать локализованный символ валюты,
"code" — код валюты ISO,
"name" — локализованное название валюты.
Значение по умолчанию —
"symbol".
useGrouping
Логическое значение. Использовать ли разделители групп. По умолчанию — true.
minimumIntegerDigits
Минимальное количество цифр целой части числа от 1 до 21. По умолчанию — 1.
minimumFractionDigits
Минимальное количество цифр дробной части числа. Возможны значения от 0 до 20. Значением по умолчанию для простого и процентного форматирования является 0. Значение по умолчанию для валюты зависит от самой валюты.
maximumFractionDigits
Максимальное количество цифр дробной части числа. Возможны значения от 0 до 20. Значением по умолчанию для простого форматирования является наибольшее значение из minimumFractionDigits и 3. Значение по умолчанию для валюты зависит от самой валюты. Значение по умолчанию для процентного форматирования — наибольшее значение из minimumFractionDigits и 0.
minimumSignificantDigits
Минимальное количество значащих цифр числа от 1 до 21. По умолчанию — 1.
maximumSignificantDigits
Максимальное количество значащих цифр числа от 1 до 21. По умолчанию — minimumSignificantDigits.
Пример использования:
1 2 3 4 |
alert(new Intl.NumberFormat("ru-RU", { minimumFractionDigits : 4 }).format(100.02)); // Выведет 100,0200 |