如何使用百里香叶在 HTML5 中格式化货币

2022-09-01 00:49:24

我被困在HTML 5中格式化货币。我有应用程序,我必须格式化货币。我有下面的代码片段

 <td class="right"><span th:inline="text">$ [[${abc.value}]]</span></td>

我从DAO abc读取货币值的地方,它应该被格式化。目前打印$ 1200000.0它应该打印$ 1,200,000.0 .0


答案 1

您可以使用实用程序对象,您可以在此处查看这些方法:http://www.thymeleaf.org/apidocs/thymeleaf/2.0.15/org/thymeleaf/expression/Numbers.html#numbers

例如:

<span th:inline="text">$ [[${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}]]</span>

但是,您也可以在不内联的情况下执行此操作(这是百里香草推荐的方式):

<td>$ <span th:text="${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}">10.00</span></td>

答案 2

我建议使用 DEFAULT 值(= 基于区域设置),以防您的应用程序必须处理不同的语言:

${#numbers.formatDecimal(abc.value, 1, 'DEFAULT', 2, 'DEFAULT')}

来自 Thymeleaf doc (更准确地说是 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')}