我使用Kendo numericTextBox来显示货币。我需要根据所选货币格式化值。我能够为“en-US”和“de-DE”正确格式化货币,但我无法正确格式化货币,因为文化具有不同的组大小。
剑道博客中的所有示例和示例都在“en-US”和“de-DE”上,具有相似的群组大小。
对于“en-US”货币groupSize
属性为[3]
,这意味着每个群组将在3位数之后分开,例如1,000,000
。但对于其他一些具有不同分组的文化,例如“en-IN”的'groupSize'等于[3,2,0]
,kendo仍然只将3组中的数字分组:1,000,000
,而我们希望分组为3位数,然后是分隔符,然后是2组数字等:10,00,000
。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
所以问题是你在没有实现这个功能的情况下使用旧的KendoUI版本。这是一个包含最新剑道版本的代码段,它看起来与en-IN
的行为不同:http://dojo.telerik.com/aqEwun
但是我不确定这是否真的在这种文化中是如何运作的,因为它只创建了2组数字,你可以在我的例子中看到(从小数点分隔符它是2组,3组和3其余的数字)。
编辑:
因此,正如您所提到的,您希望在示例中具有不同的行为(从小数点开始,一组3位数,然后是2组)。它似乎是一个错误,也许telerik有一天会修复它。在此之前,您可以将文化对象中的groupSize
值从[3,2,0]更改为[3,2],以达到您想要的效果。
要在所有链接的文化中全局修复它,您可以使用以下代码:
for(var i in kendo.cultures){
var culture = kendo.cultures[i];
if(JSON.stringify(culture.numberFormat.groupSize) === '[3,2,0]'){
culture.numberFormat.groupSize = [3, 2];
}
if(JSON.stringify(culture.numberFormat.currency.groupSize) === '[3,2,0]'){
culture.numberFormat.currency.groupSize = [3, 2];
}
if(JSON.stringify(culture.numberFormat.percent.groupSize) === '[3,2,0]'){
culture.numberFormat.percent.groupSize = [3, 2];
}
}
PS。您可以考虑使用比JSON.stringify()
更好的数组比较函数。