速度数格式问题

时间:2017-12-21 07:24:57

标签: java server locale velocity number-formatting

我们使用velocity作为模板。我们使用NumberTool格式化vm文件中的数字。

例如

  

$!{NUMBER.format('#,## 0',$!{amount})}円

预期输出为例如9,900円。它几乎占99.9999%的情况。但有时例如在几个月内它会在我们的网页中显示为9.900。。

有没有人遇到同样的问题? NumberTool中是否存在与Locale或其他问题相关的错误?

2 个答案:

答案 0 :(得分:1)

小数分隔符可以取决于区域设置。 为避免这种情况,您可以为数字工具配置特定的区域设置。例如,使用tools.xml文件时:

 <tool key="number" class="org.apache.velocity.tools.generic.NumberTool" locale="en_US"/>

或者您可以使用Java指定区域设置:

numberTool.setLocale("en_US")

答案 1 :(得分:0)

或您可以将您选择的语言环境设置为

VelocityContext context = new VelocityContext();

NumberTool nt = new NumberTool();
HashedMap vp = new HashedMap();
vp.put("locale",new Locale("en","IN"));
nt.configure(vp);
context.put("numberTool", nt);