我正在计算一些数字,这些数字必须用于将其发送到数据库并在应用程序中显示。
起初,我得到一个这样的数字:1721.0238454113。
经过一些计算,我得到了一个像这样的数字: 数字= 5426.25154751156
为了在应用程序中显示该数字,我必须像这样格式化它:
Ext.util.Format.number(parseFloat(number),'0,000.00')
我得到的是这样的:5.426,25。这正是我想要的。
现在在应用程序的另一部分中,我需要获取其他号码,但我需要它首先是如何显示的,就像这样:5426.25154751156
如何将其所有十进制数字从5.426,25格式化为5426.25154751156?
答案 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)
});
}
}
});
}
});
如果您的组件没有渲染器功能,那么也许您应该使用另一个变量来存储格式化的值,因此,再次可以稍后获得原始值。