せずに通貨形式を使用する私が持っている:、唯一のことは、それが通貨記号(ドル記号)Iドンが含まれていることをどの通貨記号やドル記号
すべてうまく私のBigDecimalをフォーマット${amount?string.currency}
です欲しい。 string["0.##"]
を使用して数値形式を明示的に指定せずにこれを無効にするにはどうすればよいですか?
せずに通貨形式を使用する私が持っている:、唯一のことは、それが通貨記号(ドル記号)Iドンが含まれていることをどの通貨記号やドル記号
すべてうまく私のBigDecimalをフォーマット${amount?string.currency}
です欲しい。 string["0.##"]
を使用して数値形式を明示的に指定せずにこれを無効にするにはどうすればよいですか?
(2.3.27)?string.currency
が常に用意されているデフォルトの通貨フォーマットを意味参照してください。 Javaによる。したがって、これを変更する代わりに、カスタムフォーマットを定義して[email protected]
(currency
はフォーマットに指定した名前に過ぎません)のように使用できます。
カスタムフォーマットはJavaで定義されています。 (http://freemarker.org/docs/pgui_config_custom_formats.html#pgui_config_custom_formats_ex_alias)マニュアルから:
// Where you initalize the application-wide Configuration singleton:
Configuration cfg = ...;
Map<String, TemplateNumberFormatFactory> customNumberFormats = new HashMap<>();
customNumberFormats.put("price",
new AliasTemplateNumberFormatFactory(",000.00"));
customNumberFormats.put("weight",
new AliasTemplateNumberFormatFactory("0.##;; roundingMode=halfUp"));
cfg.setCustomNumberFormats(customNumberFormats);
して、テンプレートに:
${[email protected]}
${[email protected]}
あなただけ
${amount?string["0.##"]}
またはnumber_format
を設定し、フォーマットを使用したい場合:
<#setting number_format="0.##">
は、すべてのFreeMarkerの現在formats options
私はおそらくより特定してきたはずですが、私は基本的にドル記号なしstring.currencyを使用する方法を求めています。表示されたメソッドは機能しますが、数字の書式設定について知る必要はなく、通貨だけを入力することができるという点で、ユーザーにとっては簡単にしています。小さな違いですが、内部テストでは一部の人が理解するのがはるかに容易であることがわかりました;)正解であるため、私はあなたを支持しました。 –
https://stackoverflow.com/questions/8658205/format-currency-without-currency-symbol – user7294900
私はそれを見ていましたが、メモリ内のNumberFormatのインスタンスを変更する方法ですが、実際にFreeMarkerには適用されません。あなたはテンプレートファイルからインスタンスへのアクセス権を持っていません... –