42

我坚持在 HTML 5 中格式化货币。我有一个应用程序,我必须在其中格式化货币。我有以下代码片段

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

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

4

4 回答 4

72

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

例如:

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

不过,您也可以在不进行内联的情况下执行此操作(这是 thymeleaf 推荐的方式):

<td>$ <span th:text="${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}">10.00</span></td>
于 2013-01-04T22:15:29.410 回答
25

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

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

来自Thymeleaf 文档(更准确地说是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')}
于 2015-05-13T19:09:26.687 回答
13

您现在可以更简单地调用实用程序formatCurrency中的方法:numbers

#numbers.formatCurrency(abc.value)

这也将消除对货币符号的需求。

例子: <span th:remove="tag" th:text="${#numbers.formatCurrency(abc.value)}">$100</span>

于 2018-02-05T07:20:40.857 回答
0

您将使用 Thymeleaf 的 numbers 实用程序对象进行内联,如下所示:

<span>[[${#numbers.formatCurrency(abc.value)}]]</span>

在视图中,它甚至会为您添加美元符号 ($)。

于 2018-12-12T20:54:05.073 回答