使用 sap.ui.core.format.NumberFormat 将所有值格式化为千位
format all values into thousands using sap.ui.core.format.NumberFormat
目前我正在使用 NumberFormat class 格式化浮点值,格式选项为:
formatOptions: {
style : 'short',
shortDecimals: 1
}
https://sapui5.netweaver.ondemand.com/docs/api/symbols/sap.ui.core.format.NumberFormat.html
所以使用我当前的格式化程序,值 5,000,000 显示为 5.0 M。
我想知道是否有一种简单的方法使用格式化程序将所有值强制转换为任何其他面额(例如可能是数千)。
即 5 M 应格式化为 5000 K。
不,没有简单的方法。 'short' is a special CLDR number pattern。面额在本地化中配置:这是每种语言中每个量级的条目。因此,您将不得不更改您的语言(也可能是其他语言)的本地化数据,或者创建一种新语言并将其用于您的 NumberFormat
.
如果您想要固定面额,我建议您使用自定义格式化程序函数或自定义数据类型。 Here's an example 格式化函数:
formatThousands:function(value){
var numberFormat = NumberFormat.getFloatInstance({maxFractionDigits:1});
var text = numberFormat.format(value/1000)+" K";
return text;
}
目前我正在使用 NumberFormat class 格式化浮点值,格式选项为:
formatOptions: {
style : 'short',
shortDecimals: 1
}
https://sapui5.netweaver.ondemand.com/docs/api/symbols/sap.ui.core.format.NumberFormat.html
所以使用我当前的格式化程序,值 5,000,000 显示为 5.0 M。
我想知道是否有一种简单的方法使用格式化程序将所有值强制转换为任何其他面额(例如可能是数千)。
即 5 M 应格式化为 5000 K。
不,没有简单的方法。 'short' is a special CLDR number pattern。面额在本地化中配置:这是每种语言中每个量级的条目。因此,您将不得不更改您的语言(也可能是其他语言)的本地化数据,或者创建一种新语言并将其用于您的 NumberFormat
.
如果您想要固定面额,我建议您使用自定义格式化程序函数或自定义数据类型。 Here's an example 格式化函数:
formatThousands:function(value){
var numberFormat = NumberFormat.getFloatInstance({maxFractionDigits:1});
var text = numberFormat.format(value/1000)+" K";
return text;
}