Je suis coincé avec le formatage de la devise en HTML 5. J'ai une application où je dois formater la devise. J'ai l'extrait de code ci-dessous
<td class="right"><span th:inline="text">$ [[${abc.value}]]</span></td>
Où de DAO abc je lis la valeur monétaire, il devrait être formaté. Actuellement en train d’imprimer $ 1200000.0 il devrait imprimer $ 1.200.000.0 .0
Vous pouvez utiliser l'objet utilitaire #numbers
, dont vous pouvez voir les méthodes ici: http://www.thymeleaf.org/apidocs/thymeleaf/2.0.15/org/thymeleaf/expression/Numbers.html
Par exemple:
<span th:inline="text">$ [[${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}]]</span>
Néanmoins, vous pouvez aussi le faire sans aligner (ce qui est la méthode recommandée pour le thymeleaf):
<td>$ <span th:text="${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}">10.00</span></td>
Je recommande d'utiliser la valeur DEFAULT (= en fonction des paramètres régionaux) au cas où votre application doit traiter plusieurs langues
${#numbers.formatDecimal(abc.value, 1, 'DEFAULT', 2, 'DEFAULT')}
À partir de doc Thymeleaf (plus précisément NumberPointType ):
/*
* Set minimum integer digits and thousands separator:
* 'POINT', 'COMMA', 'NONE' or 'DEFAULT' (by locale).
* Also works with arrays, lists or sets
*/
${#numbers.formatInteger(num,3,'POINT')}
${#numbers.arrayFormatInteger(numArray,3,'POINT')}
${#numbers.listFormatInteger(numList,3,'POINT')}
${#numbers.setFormatInteger(numSet,3,'POINT')}
/*
* Set minimum integer digits and (exact) decimal digits, and also decimal separator.
* Also works with arrays, lists or sets
*/
${#numbers.formatDecimal(num,3,2,'COMMA')}
${#numbers.arrayFormatDecimal(numArray,3,2,'COMMA')}
${#numbers.listFormatDecimal(numList,3,2,'COMMA')}
${#numbers.setFormatDecimal(numSet,3,2,'COMMA')}
Vous utiliseriez en ligne l'objet de l'utilitaire de nombres de Thymeleaf comme suit:
<span>[[${#numbers.formatCurrency(abc.value)}]]</span>
Dans la vue, le signe dollar ($) sera même préfixé pour vous.