【Thymeleaf】格式化数字

前言

  • thymeleaf 3.0
  • spring boot 2.0.0RELEASE

左补0

<p th:with="num=10" th:utext="${#numbers.formatInteger(num,3)}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,4)}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,5)}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,6)}">number format</p>

输出结果:

<p>010</p>
<p>0010</p>
<p>00010</p>
<p>000010</p>

千分位分隔符

<p th:with="num=1" th:utext="${#numbers.formatInteger(num,1,'COMMA')}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,1,'COMMA')}">number format</p>
<p th:with="num=100" th:utext="${#numbers.formatInteger(num,1,'COMMA')}">number format</p>
<p th:with="num=1000" th:utext="${#numbers.formatInteger(num,1,'COMMA')}">number format</p>
<p th:with="num=10000" th:utext="${#numbers.formatInteger(num,1,'COMMA')}">number format</p>
<p th:with="num=100000" th:utext="${#numbers.formatInteger(num,1,'COMMA')}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,2,'COMMA')}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,3,'COMMA')}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,4,'COMMA')}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,5,'COMMA')}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatInteger(num,6,'COMMA')}">number format</p>

输出结果:

<p>1</p>
<p>10</p>
<p>100</p>
<p>1,000</p>
<p>10,000</p>
<p>100,000</p>
<p>10</p>
<p>010</p>
<p>0,010</p>
<p>00,010</p>
<p>000,010</p>

千分位分隔符 + 保留2位小数

<p th:with="num=1" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=100" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=1000" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=10000" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=100000" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=1000000" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=1234567.8" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=1234567.85" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=1234567.8797" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
<p th:with="num=1234567.8732" th:utext="${#numbers.formatDecimal(num,3, 'COMMA', 2,'POINT')}">number format</p>
        

输出结果:

<p>001.00</p>
<p>010.00</p>
<p>100.00</p>
<p>1,000.00</p>
<p>10,000.00</p>
<p>100,000.00</p>
<p>1,000,000.00</p>
<p>1,234,567.80</p>
<p>1,234,567.85</p>
<p>1,234,567.88</p>
<p>1,234,567.87</p>

货币格式

转换成货币格式时,是根据当前的 Locale 进行转换。

<p th:with="num=1" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=10" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=100" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=1000" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=10000" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=100000" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=1000000" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=1234567.8" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=1234567.85" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=1234567.8797" th:utext="${#numbers.formatCurrency(num)}">number format</p>
<p th:with="num=1234567.8732" th:utext="${#numbers.formatCurrency(num)}">number format</p>

Locale = zh_CN 时,输出结果:

<p>¥1.00</p>
<p>¥10.00</p>
<p>¥100.00</p>
<p>¥1,000.00</p>
<p>¥10,000.00</p>
<p>¥100,000.00</p>
<p>¥1,000,000.00</p>
<p>¥1,234,567.80</p>
<p>¥1,234,567.85</p>
<p>¥1,234,567.88</p>
<p>¥1,234,567.87</p>

Locale = en_US 时,输出结果:

<p>$1.00</p>
<p>$10.00</p>
<p>$100.00</p>
<p>$1,000.00</p>
<p>$10,000.00</p>
<p>$100,000.00</p>
<p>$1,000,000.00</p>
<p>$1,234,567.80</p>
<p>$1,234,567.85</p>
<p>$1,234,567.88</p>
<p>$1,234,567.87</p>

Locale = de_DE 时,输出结果:

<p>1,00 €</p>
<p>10,00 €</p>
<p>100,00 €</p>
<p>1.000,00 €</p>
<p>10.000,00 €</p>
<p>100.000,00 €</p>
<p>1.000.000,00 €</p>
<p>1.234.567,80 €</p>
<p>1.234.567,85 €</p>
<p>1.234.567,88 €</p>
<p>1.234.567,87 €</p>

百分比格式

<p th:with="num=1" th:utext="${#numbers.formatPercent(num, 1, 2)}">number format</p>
<p th:with="num=1" th:utext="${#numbers.formatPercent(num, 2, 2)}">number format</p>
<p th:with="num=1" th:utext="${#numbers.formatPercent(num, 3, 2)}">number format</p>
<p th:with="num=1" th:utext="${#numbers.formatPercent(num, 4, 2)}">number format</p>
<p th:with="num=0.80" th:utext="${#numbers.formatPercent(num, 1, 2)}">number format</p>
<p th:with="num=0.808" th:utext="${#numbers.formatPercent(num, 1, 2)}">number format</p>
<p th:with="num=0.80881" th:utext="${#numbers.formatPercent(num, 1, 2)}">number format</p>
<p th:with="num=0.80888" th:utext="${#numbers.formatPercent(num, 1, 2)}">number format</p>
<p th:with="num=3.1415926" th:utext="${#numbers.formatPercent(num, 1, 3)}">number format</p>        

输出结果:

<p>100.00%</p>
<p>100.00%</p>
<p>100.00%</p>
<p>0,100.00%</p>
<p>80.00%</p>
<p>80.80%</p>
<p>80.88%</p>
<p>80.89%</p>
<p>314.159%</p>

Thymeleaf 中的 numbers 对象

  • #numbers : utility methods for number objects:
/*
 * ======================================================================
 * See javadoc API for class org.thymeleaf.expression.Numbers
 * ======================================================================
 */

/*
 * ==========================
 * Formatting integer numbers
 * ==========================
 */

/* 
 * Set minimum integer digits.
 * Also works with arrays, lists or sets
 */
${#numbers.formatInteger(num,3)}
${#numbers.arrayFormatInteger(numArray,3)}
${#numbers.listFormatInteger(numList,3)}
${#numbers.setFormatInteger(numSet,3)}


/* 
 * Set minimum integer digits and thousands separator: 
 * 'POINT', 'COMMA', 'WHITESPACE', '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')}


/*
 * ==========================
 * Formatting decimal numbers
 * ==========================
 */

/*
 * Set minimum integer digits and (exact) decimal digits.
 * Also works with arrays, lists or sets
 */
${#numbers.formatDecimal(num,3,2)}
${#numbers.arrayFormatDecimal(numArray,3,2)}
${#numbers.listFormatDecimal(numList,3,2)}
${#numbers.setFormatDecimal(numSet,3,2)}

/*
 * 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')}

/*
 * Set minimum integer digits and (exact) decimal digits, and also thousands and 
 * decimal separator.
 * Also works with arrays, lists or sets
 */
${#numbers.formatDecimal(num,3,'POINT',2,'COMMA')}
${#numbers.arrayFormatDecimal(numArray,3,'POINT',2,'COMMA')}
${#numbers.listFormatDecimal(numList,3,'POINT',2,'COMMA')}
${#numbers.setFormatDecimal(numSet,3,'POINT',2,'COMMA')}


/* 
 * =====================
 * Formatting currencies
 * =====================
 */

${#numbers.formatCurrency(num)}
${#numbers.arrayFormatCurrency(numArray)}
${#numbers.listFormatCurrency(numList)}
${#numbers.setFormatCurrency(numSet)}


/* 
 * ======================
 * Formatting percentages
 * ======================
 */

${#numbers.formatPercent(num)}
${#numbers.arrayFormatPercent(numArray)}
${#numbers.listFormatPercent(numList)}
${#numbers.setFormatPercent(numSet)}

/* 
 * Set minimum integer digits and (exact) decimal digits.
 */
${#numbers.formatPercent(num, 3, 2)}
${#numbers.arrayFormatPercent(numArray, 3, 2)}
${#numbers.listFormatPercent(numList, 3, 2)}
${#numbers.setFormatPercent(numSet, 3, 2)}


/*
 * ===============
 * Utility methods
 * ===============
 */

/*
 * Create a sequence (array) of integer numbers going
 * from x to y
 */
${#numbers.sequence(from,to)}
${#numbers.sequence(from,to,step)}

参考

https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#numbers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值