2017-12-21 14 views
1

Wir verwenden Geschwindigkeit als Vorlage. Wir verwenden NumberTool, um Zahlen in vm-Dateien zu formatieren.Velocity Number Format Problem

Zum Beispiel

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

Erwartete Ausgabe ist zum Beispiel 9.900 円. Es funktioniert in fast 99,9999% der Fälle. Aber manchmal zum Beispiel einmal in ein paar Monaten zeigt es als 9.900 in unserer Webseite an.

Hat jemand das gleiche Problem? Gibt es einen Fehler in NumberTool, der sich auf Locale oder ein anderes Problem bezieht?

+0

Es gibt eine Änderung in Locale in neuestem 3.0-SNAPSHOT finden Sie unter http: //velocity.apache .org/tools/devel/changes.html – user7294900

+0

@ user7294900 Wir verwenden eine ältere Version. Sein 1.6.4. –

Antwort

1

Das Dezimaltrennzeichen kann vom Gebietsschema abhängen. Um dies zu vermeiden, können Sie ein bestimmtes Gebietsschema für das Zahlentool konfigurieren. Zum Beispiel, wenn eine Datei mit tools.xml:

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

Oder Sie können festlegen, die Locale mit Java:

numberTool.setLocale("en_US") 
+0

Gibt es Dokumentation über Attribute zum Festlegen der Ländereinstellung? –

+1

Ja, auch wenn es sicher klarer gesagt werden könnte. Siehe [die Tools-Übersichtsseite] (http://velocity.apache.org/tools/2.0/tools-summary.html#NumberTool). Das Javadocs zeigt, dass NumberTool von LocaleConfig erbt, das eine setLocale() -Methode hat, aber es erfordert etwas Graben, um dies herauszufinden. –