Как отформатировать число в Extjs? - PullRequest
0 голосов
/ 06 мая 2019

Я вычисляю некоторые числа, которые я должен использовать, чтобы отправить их в базу данных и показать их в приложении.

сначала я получаю число, подобное этому: 1721.0238454113.

послеВ некоторых вычислениях я получил число вроде этого: number = 5426.25154751156

Чтобы показать это число в приложении, мне пришлось отформатировать его следующим образом:

Ext.util.Format.number(parseFloat(number),'0,000.00')

Я получаю что-то вроде этого:5.426,25.Что именно то, что я хотел.

Теперь в другом разделе приложения мне нужно получить этот номер для чего-то другого, но мне нужно, чтобы он был показан вначале, я имею в виду примерно так: 5426.25154751156

Как мне отформатироватьчисло от 5.426,25 до 5426.25154751156 со всеми его десятичными числами?.

1 Ответ

0 голосов
/ 06 мая 2019

Этот фрагмент кода Ext.util.Format.number(parseFloat(number),'0,000.00') преобразует ваш int / float в строку, поэтому вы не можете снова преобразовать эту строку в float со всеми предыдущими десятичными числами.

Мое первое предложение - использовать рендерер или renderData, если вы можете (вы не сказали, какой тип компонента вы используете), так что вы не измените необработанное значение числа и сможете получить его позже, проверьте этот краткий пример:

Ext.application({
    name: 'Fiddle',

    launch: function () {
        var number = 5426.25154751156;
        Ext.create('Ext.Component', {
            renderTo: Ext.getBody(),
            renderTpl: [
                '<h1 id="{id}-title" data-ref="title">{title}</h1>',
                '<p>{msg}</p>',
            ],
            renderData: {
                title: "Formated Number",
                msg: Ext.util.Format.number(parseFloat(number), '0,000.00')
            },
            childEls: ["title"]

        });
        Ext.create('Ext.Button', {
            text: 'Get raw value',
            renderTo: Ext.getBody(),
            listeners: {
                afterrender: function (cmp) {
                    cmp.setHandler(function(){
                        console.log("number",number)
                    });
                }
            }
        });
    }
});

Fiddle

Если ваш компонент не имеет функции рендеринга, тогда, возможно, вам следует использовать другую переменную для хранения отформатированного значения, так что снова вы можете получить необработанное значение позже.

...