Velocity 數值格式化(NumberTool工具類):保留兩位小數和格式化千分位、取整


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)

3、參考:

  1. velocity 模板保留兩位小數(截斷 2 位) - sxy_Fighting - CSDN 博客
  2. Velocity 中的 ComparisonDateTool、MathTool、NumberTool、SortTool、EscapeTool 工具 - Jc Wang - 博客園
    注:各種格式類說的很全,可以好好參考。
  3. NumberTool (VelocityTools 3.0-SNAPSHOT API)
    注:源碼文檔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM