- A+
都知道用#numbers.formatDecimal来format,但是formatDecimal里的两个参数却搞不太清楚,最坑的是thymeleaf官网中居然没有详细的说明。。。无语。
没办法,只能自己慢慢试了,根据测试的结果,现在来详细说明下。
首先,我的需求是将一个number(9.2)的数字(即整数位最大7位,小数位最大2位)format成3位加逗号。比如:1234567.55
下面是几种写法的输出结果
${#numbers.formatDecimal(num,7,2)} 输出 1234567.55
${#numbers.formatDecimal(num,0,2)} 输出 1234567.55
这个可以看出第二个参数是代表保留多少位小数,这个例子看不出第一个参数的意思。
下面再看另一个例子,比如:1234.55
${#numbers.formatDecimal(num,7,2)} 输出 0001234.55
${#numbers.formatDecimal(num,0,2)} 输出 1234.55
可以看出,第一个参数是整数部分的最大位数,如果不满,则在前面补0,如果第一个参数指定为0.则不补0.
现在的问题是要3位加逗号。${#numbers.formatDecimal(num,0,'POINT',2,'COMMA')} 输出1.234.567,55
${#numbers.formatDecimal(num,0,'COMMA',2,'POINT')} 输出1,234,567.55
注意上面两种写法,第一种是错误的,必须用第二种写法才能得出正确的结果。从结果可以看出,2后面跟的是comma的话就变成了最后2位加一个逗号,2后面跟的是point的话就是最后2位加一个点。