2017-10-18 4 views

Répondre

2

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]} 
1

Si vous voulez juste utilisez le format

${amount?string["0.##"]} 

ou un ensemble number_format:

<#setting number_format="0.##"> 

Voir tous freemarker formats options

+0

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. –

+0

Voir https://stackoverflow.com/questions/8658205/format-currency-without-currency-symbol – user7294900

+0

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 ... –