2017-12-21 44 views
1

ベロシティをベロシティとして使用しています。 NumberToolを使用して、vmファイルの数値をフォーマットします。ベロシティ番号形式の問題

例えば

$!{NUMBER.format( '#、## 0'、$!{量})}円

予想出力は、例えば9,900円のためのものです。これは、ケースの99.9999%近くで動作します。しかし、時には例えば数ヶ月のうちに1回、ウェブページに9.900円と表示されることもあります。

誰も同じ問題に直面していますか? Localeやその他の問題に関連したNumberToolにバグはありますか?

+0

最新の3.0-SNAPSHOTでのロケールの変化はありますが、HTTPを参照してください。//velocity.apacheを.org/tools/devel/changes.html – user7294900

+0

@ user7294900私たちは古いバージョンを使用しています。 1.6.4。 –

答えて

1

小数点の区切り記号は、ロケールによって異なる場合があります。 これを避けるには、特定のロケールを数値ツールに設定します。

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

または使用してロケールを指定できるJava:tools.xmlファイル使用している場合たとえば、

numberTool.setLocale("en_US") 
+0

ロケールを設定するための属性に関する資料はありますか? –

+1

はい、それは確かにもっと明確に述べられているかもしれません。 [ツールの概要ページ](http://velocity.apache.org/tools/2.0/tools-summary.html#NumberTool)を参照してください。 javadocsは、NumberToolがLocaleConfigから継承していることを示しています。LocaleConfigはsetLocale()メソッドを持っていますが、これを見つけるにはいくつかの掘り出しが必要です。 –