Библиотека Webix предлагает встроенные методы для форматирования чисел. Методы доступны через модуль i18n и в основном используются при локализации.
Форматирование данных в соответствии с нормами страны и языка:
const string1 = webix.i18n.numberFormat("123.45");
const string2 = webix.i18n.intFormat("123.45")
const string3 = webix.i18n.priceFormat("123.45");
Применение локали внутри компонента:
// datatable
{ header:"LongDate", width:170, id:"start", format:webix.i18n.numberFormat }
// другие компоненты
template:function(obj) {return webix.i18n.numberFormat(obj.start); }
Подробнее в статье Локализация дат и чисел.
Вы можете задавать свои правила форматирования, используя методы класса Number:
Задайте нужные вам правила в компоненте данных:
const string1 = webix.Number.format("-1236.45",{
groupDelimiter:",",
groupSize:3,
decimalDelimiter:".",
decimalSize:2,
minusPosition:"after",
minusSign:"-"
});
// -> 1,236.45-
Применение формата внутри компонента:
// datatable
{ header:"LongDate", width:170, id:"votes", format:webix.Number.numToStr({
groupDelimiter:"",
groupSize:0,
decimalDelimiter:",",
decimalSize:5,
minusPosition:"parentheses",
minusSign:"()",
});
}
// другие компоненты
template:function(obj) {
return webix.Number.numToStr({
groupDelimiter:"",
groupSize:0,
decimalDelimiter:",",
decimalSize:5,
minusPosition:"parentheses",
minusSign:"()",
});
}
Related sample: Using Number Templates
Также вы можете получить объект с параметрами конфигурации, используемыми для форматирования:
const cfg = webix.Number.getConfig("1'111.00");
// ->{decimalSize: 2, groupSize: 3, decimalDelimiter: ".", groupDelimiter: "'",
// prefix: "", sufix: ""}
и определить формат проанализированного значения:
const num1 = webix.Number.parse("(10'009.00)", {
decimalSize: 2, groupSize: 3,
decimalDelimiter: ".", groupDelimiter: "'",minusPosition:"parentheses",
minusSign:"()",
});
// -> -10009
Наверх