Форматирование чисел
DivKit имеет встроенную функцию и метод для форматирования чисел, decimalFormat.
count.decimalFormat('#')
decimalFormat(count, '#')
Шаблон форматирования
Шаблон может содержать 4 символа: #, 0, ,, ..
# означает цифру, которую можно опустить, если она не нужна.
0 означает цифру, которая обязательно обязательно должна быть в результате. Будет заполнено нулём, если нужной значащей цифры нет.
Пример:
1.decimalFormat('00') // -> '01'
123.decimalFormat('00') // -> '123'
, означает наличие и позицию группировки. Может встречаться только один раз.
Пример:
1234.decimalFormat('####') // -> '1234'
1234.decimalFormat('#,###') // -> '1 234'
. означает разделитель между целой и дробной частью. Может встречаться только один раз.
Пример:
1.decimalFormat('#.#') // -> '1'
1.decimalFormat('#.0') // -> '1,0'
1.2.decimalFormat('#.#') // -> '1,2'
Комбинация различных символов в формате
Пример:
decimalFormat(1234567.89, '#,###.00') // -> '1 234 567,89'
Прочитать можно так:
- В целой части выводим все символы, что есть, и через каждые 3 символа рисуем разделитель группы
- В дробной части делаем минимум 2 цифры. Точка есть всегда
Пример:
decimalFormat(0.123456, '.00#') // -> '0,123'
Означает "от 2х до 3х цифр в дробной части".
Округление
Округляется банковским округлением (Round-Half-To-Even).
Округляется до ближайшего чётного целого.
Пример:
decimalFormat(0.5, '#') // -> '0'
decimalFormat(1.5, '#') // -> '2'
decimalFormat(2.5, '#') // -> '2'
Локали
В дефолтном варианте используется текущая локаль.
Локаль влияет на символы для разделения групп и для разделения целой / дробной части, а также на сами цифры.
В ряде случаев лучше передать локаль явным образом:
decimalFormat(0.123456, '.00#', 'en-US') // -> '0.123'
Количество символов в группе задаётся шаблоном, не локалью!