Kendo ui 如何使用剑道数字文本框中的区域性组大小格式化货币?

Kendo ui 如何使用剑道数字文本框中的区域性组大小格式化货币?,kendo-ui,currency-formatting,kendonumerictextbox,Kendo Ui,Currency Formatting,Kendonumerictextbox,我正在使用Kendo numericTextBox显示货币。我需要根据所选货币设置值的格式。我能够为“en-US”和“de-de”正确设置货币格式,但我在为具有不同组大小的文化正确设置货币格式方面遇到困难 剑道博客中的所有示例和示例都在“en-US”和“de-de”上,它们的群大小相似 对于“en-US”货币groupSize属性是[3]这意味着每个组将在3位数后分开,例如1000000。但对于其他具有不同分组的文化,例如“en-IN”,其“groupSize”等于[3,2,0],剑道仍然只将数

我正在使用Kendo numericTextBox显示货币。我需要根据所选货币设置值的格式。我能够为“en-US”和“de-de”正确设置货币格式,但我在为具有不同组大小的文化正确设置货币格式方面遇到困难

剑道博客中的所有示例和示例都在“en-US”和“de-de”上,它们的群大小相似

对于“en-US”货币
groupSize
属性是
[3]
这意味着每个组将在3位数后分开,例如
1000000
。但对于其他具有不同分组的文化,例如“en-IN”,其“groupSize”等于
[3,2,0]
,剑道仍然只将数字分组为3组:
1000000
,而我们预期分组为3位数字,然后是分隔符,然后是2位数字组,等等:
10,00000

有人能帮我吗


这是我的代码示例:

所以问题是您使用的是旧KendoUI版本,没有实现此功能。这是一个最新剑道版本的代码片段,看起来它在中对
en的行为有所不同:

但是,我不确定这是否就是它在这种文化中的具体工作方式,因为它只创建了两组数字,正如您在我的示例中看到的那样(从十进制分隔符来看,它是2组、3组和其余数字)

编辑:

正如您所提到的,您希望有与本例不同的行为(从小数点开始,一组3位数,然后一组2位数)。这似乎是一个错误,也许有一天telerik会修复它。在此之前,您可以将culture对象中的
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];
    }
  }

P.您可以考虑使用更好的数组比较函数,而不是<代码> JSON.StrugIFYE()<<代码> < /P>


更新的代码段:

所以问题是您使用的是旧的KendoUI版本,没有实现此功能。这是一个最新剑道版本的代码片段,看起来它在
中对
en的行为有所不同:

但是,我不确定这是否就是它在这种文化中的具体工作方式,因为它只创建了两组数字,正如您在我的示例中看到的那样(从十进制分隔符来看,它是2组、3组和其余数字)

编辑:

正如您所提到的,您希望有与本例不同的行为(从小数点开始,一组3位数,然后一组2位数)。这似乎是一个错误,也许有一天telerik会修复它。在此之前,您可以将culture对象中的
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];
    }
  }

P.您可以考虑使用更好的数组比较函数,而不是<代码> JSON.StrugIFYE()<<代码> < /P>


更新的代码片段:

Oh。好的,我会更新KendoUI的版本并检查它的功能。但是正如你提到的,分组是不正确的。即使前两个分组正确标记,数字的其余部分也被分组在一起。这并不像预期的那样。是否有可能根据客户端的组大小创建自定义货币格式?我尝试过自定义格式,但没有成功。不过,我更新了我的答案,提出了涉及文化定义变化的解决方案。非常感谢@Jaroslaw。此解决方案将帮助我生成一个更通用的解决方案,以处理具有相同组大小问题的不同文化。谢谢你的洞察力。正如你所提到的,我希望telerik能尽快找到解决问题的办法。再一个。。如果你认为我的问题是正确的,请投赞成票哦好的,我会更新KendoUI的版本并检查它的功能。但是正如你提到的,分组是不正确的。即使前两个分组正确标记,数字的其余部分也被分组在一起。这并不像预期的那样。是否有可能根据客户端的组大小创建自定义货币格式?我尝试过自定义格式,但没有成功。不过,我更新了我的答案,提出了涉及文化定义变化的解决方案。非常感谢@Jaroslaw。此解决方案将帮助我生成一个更通用的解决方案,以处理具有相同组大小问题的不同文化。谢谢你的洞察力。正如你所提到的,我希望telerik能尽快找到解决问题的办法。再一个。。如果你认为我的问题是正确的,请投赞成票