Velocity 自帶的工具類:NumberTool 實現數字格式化:保留兩位小數和格式化千分位,以及取整。
NumberTool 的 format(String format, Object obj)
函數說明。
第一個參數定義的格式,第二個參數是要被格式化的對象。
1、使用示例:
//保留兩位小數
$number.format("#0.00", $val)
//保留一位小數
$number.format("#0.0", $val)
//百分比
$number.format("0.00%", $val)
//千分位分割,並保留兩位小數(指對 >= 1000的數字適合,< 1000 的數字會異常)例:99,會被格式化為:099.00
$number.format("#,000.00", $val)
//解決其實也簡單,格式化之前判斷一下:
#if($!val>=1000) $!{number.format('#,000.00',$!val)} #else $!val #end
//取整,一直不知道怎么對小數取整,后來發現很簡單,只是需要換一個函數
$number.integer($val)
2、優化:格式化千分位定義為 macro 宏
如果頁面數據太多,每次都判斷也麻煩,可以把這個方法寫成一個macro宏,然后頁面直接使用就可以了。
## 宏定義如下
#macro (formatThousands $number)
#if($number>=1000)
$!{numberTool.format('#,000.00',$number)}
#else
$!{numberTool.format('#0.00',$number)}
#end
#end
## 使用,頁面上直接使用
#formatThousands(1000)