一、使用內建函數 c
特點:
不管其表現形式是怎樣的(
例如"123,456.123,456"、 "123 456.123 456"、 "000 123 456.123 456 000"、 "123,456.123 456"、 "1,2345,6.123456")
, 只要小數分割符是'.' 它就能轉化成計算機能夠識別的字符串形式,而且都是123456.123456,計算機處理的時候是沒有那些所謂的千位分隔符的(空格或逗號),而且計算機支持的最大的小數點后面的位數是16位,目前來說,已經夠我們用了。
用法:
假設strmun是一個字符串形式的數字,則可以這樣寫 ${strnum?c},例如${"123,456.123,456"?c} 值為123456.123456
可能用處:
對一些表單允許用戶按照個人習慣輸入數字,提交的時候統一轉換
二、使用預定義的數字格式
有四種預定義的數字格式,分別是computer(跟內建函數c功能一樣,用法不一樣)、currency(貨幣格式)、number(數字格式)、percent(百分比形式)
特點:
這些格式的明確含義是本地化(國家)指定的,受 Java 平臺安裝環境所控制,而不是 FreeMarker,所以不建議用這些函數,而且受默認數字格式的影響,用法不靈活。
三、使用類似于Java中數字格式語法形式
特點:
例如"0.#",左邊的'0'的個數代表整數部分最少為多少位,右邊'#"的個數代表小數部分最多為多少位;例如",##0.0#"表示整數部分的千位分割符是',',小數部分最多保留兩位,最少保留一位;例如"0.##%"以百分比的形式表示,小數部分最多兩位。
用法:
假設strnum是一個數字,則可以這樣寫${strnum?string(",##0.0#")} ,例如${123456.123456?string(",##0.0#")} 值為123,456.12
注意:
數字格式是本地化敏感的,不過我們一般都會給freemarker設置默認的本地化語言,問題不大。
可能用處:
當在某一個地方突然要用到數字格式時,調用 string 函數是可以的,當在很多地方都需要用到數字格式是,這樣處理太麻煩了,可以考慮設置默認的數字格式化形式
四、局部設置
特點:
如果在某個頁面,或者某幾個頁面(其它頁面可import進來),用到的數字格式化是相同的,可考慮統一配置數字的格式化形式
用法:
只需在用到需要格式化的數字之前 設置就可以了,格式如下: <#setting number_format=",##0.##"> 其中",##0.##"的內容是采用類似于java中數字格式的語法形式,也就是以上的第三點。
注意:
如果用在一個頁面,則整個頁面默認就是那種格式,除非用string函數覆蓋了默認的格式,同樣的,如果放在一個公共的頁面,其它頁面只要include它,也會是同樣的格式。
五、全局設置
特點:
在所有的頁面都默認提供數字的格式化形式
用法
(針對spring):在freemarker的配置文件中設置其默認的數字格式化形式,如下:
代碼如下
< property name = "freemarkerSet
< props>
.....
< prop key = "number_format"> 0.##
......
六、舍入處理
有幾種舍入處理方式,分別是 round,floor,ceiling 和string("0")
新聞熱點
疑難解答