如何在Extjs中格式化数字?

时间:2019-05-06 15:49:50

标签: extjs number-formatting

我正在计算一些数字,这些数字必须用于将其发送到数据库并在应用程序中显示。

起初,我得到一个这样的数字:1721.0238454113。

经过一些计算,我得到了一个像这样的数字: 数字= 5426.25154751156

为了在应用程序中显示该数字,我必须像这样格式化它:

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

我得到的是这样的:5.426,25。这正是我想要的。

现在在应用程序的另一部分中,我需要获取其他号码,但我需要它首先是如何显示的,就像这样:5426.25154751156

如何将其所有十进制数字从5.426,25格式化为5426.25154751156?

1 个答案:

答案 0 :(得分:0)

这段代码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

如果您的组件没有渲染器功能,那么也许您应该使用另一个变量来存储格式化的值,因此,再次可以稍后获得原始值。