Actuellement (2.3.27) ?string.currency
signifie toujours le format monétaire par défaut fourni par Java. Ainsi, au lieu de changer cela, vous pouvez définir un format personnalisé et l'utiliser comme [email protected]
(où currency
est juste un nom que vous avez donné au format).
Les formats personnalisés sont définis en Java. Du Manuel (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);
puis dans le modèle:
${[email protected]}
${[email protected]}
Je devrais probablement être plus précis ai, mais je demande essentiellement comment utiliser string.currency sans le signe dollar . La méthode que vous avez montrée fonctionnera mais j'essaye de la rendre plus simple pour mes utilisateurs en ce sens qu'ils n'ont pas besoin de savoir quoi que ce soit sur la mise en forme des nombres et peuvent juste taper en devise. C'est une petite différence, mais les tests internes ont montré qu'il est beaucoup plus facile pour certaines personnes de comprendre;) Je vous ai de toute façon mis à jour puisque c'est une bonne réponse et c'est ma faute si je ne suis pas plus précis. –
Voir https://stackoverflow.com/questions/8658205/format-currency-without-currency-symbol – user7294900
Je regardais cela mais c'est comment modifier une instance de NumberFormat en mémoire, ça ne s'applique pas vraiment à FreeMarker où vous n'avez pas accès à l'instance à partir du fichier modèle ... –