国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

jsp中freemarker 數(shù)字格式化

2024-09-05 00:17:35
字體:
供稿:網(wǎng)友

  一、使用內(nèi)建函數(shù) c

  特點(diǎn):

  不管其表現(xiàn)形式是怎樣的(

  例如"123,456.123,456"、 "123 456.123 456"、 "000 123 456.123 456 000"、 "123,456.123 456"、 "1,2345,6.123456")

  , 只要小數(shù)分割符是'.' 它就能轉(zhuǎn)化成計(jì)算機(jī)能夠識別的字符串形式,而且都是123456.123456,計(jì)算機(jī)處理的時候是沒有那些所謂的千位分隔符的(空格或逗號),而且計(jì)算機(jī)支持的最大的小數(shù)點(diǎn)后面的位數(shù)是16位,目前來說,已經(jīng)夠我們用了。

  用法:

  假設(shè)strmun是一個字符串形式的數(shù)字,則可以這樣寫 ${strnum?c},例如${"123,456.123,456"?c} 值為123456.123456

  可能用處:

  對一些表單允許用戶按照個人習(xí)慣輸入數(shù)字,提交的時候統(tǒng)一轉(zhuǎn)換

  二、使用預(yù)定義的數(shù)字格式

  有四種預(yù)定義的數(shù)字格式,分別是computer(跟內(nèi)建函數(shù)c功能一樣,用法不一樣)、currency(貨幣格式)、number(數(shù)字格式)、percent(百分比形式)

  特點(diǎn):

  這些格式的明確含義是本地化(國家)指定的,受 Java 平臺安裝環(huán)境所控制,而不是 FreeMarker,所以不建議用這些函數(shù),而且受默認(rèn)數(shù)字格式的影響,用法不靈活。

  三、使用類似于Java中數(shù)字格式語法形式

  特點(diǎn):

  例如"0.#",左邊的'0'的個數(shù)代表整數(shù)部分最少為多少位,右邊'#"的個數(shù)代表小數(shù)部分最多為多少位;例如",##0.0#"表示整數(shù)部分的千位分割符是',',小數(shù)部分最多保留兩位,最少保留一位;例如"0.##%"以百分比的形式表示,小數(shù)部分最多兩位。

  用法:

  假設(shè)strnum是一個數(shù)字,則可以這樣寫${strnum?string(",##0.0#")} ,例如${123456.123456?string(",##0.0#")} 值為123,456.12

  注意:

  數(shù)字格式是本地化敏感的,不過我們一般都會給freemarker設(shè)置默認(rèn)的本地化語言,問題不大。

  可能用處:

  當(dāng)在某一個地方突然要用到數(shù)字格式時,調(diào)用 string 函數(shù)是可以的,當(dāng)在很多地方都需要用到數(shù)字格式是,這樣處理太麻煩了,可以考慮設(shè)置默認(rèn)的數(shù)字格式化形式

  四、局部設(shè)置

  特點(diǎn):

  如果在某個頁面,或者某幾個頁面(其它頁面可import進(jìn)來),用到的數(shù)字格式化是相同的,可考慮統(tǒng)一配置數(shù)字的格式化形式

  用法:

  只需在用到需要格式化的數(shù)字之前 設(shè)置就可以了,格式如下: <#setting number_format=",##0.##"> 其中",##0.##"的內(nèi)容是采用類似于java中數(shù)字格式的語法形式,也就是以上的第三點(diǎn)。

  注意:

  如果用在一個頁面,則整個頁面默認(rèn)就是那種格式,除非用string函數(shù)覆蓋了默認(rèn)的格式,同樣的,如果放在一個公共的頁面,其它頁面只要include它,也會是同樣的格式。

  五、全局設(shè)置

  特點(diǎn):

  在所有的頁面都默認(rèn)提供數(shù)字的格式化形式

  用法

  (針對spring):在freemarker的配置文件中設(shè)置其默認(rèn)的數(shù)字格式化形式,如下:

  代碼如下

  < property name = "freemarkerSettings" >

  < props>

  .....

  < prop key = "number_format"> 0.##

  ......

  

  

  六、舍入處理

  有幾種舍入處理方式,分別是 round,floor,ceiling 和string("0")

  特點(diǎn):

  前面三種,從字面上很好理解,我們也經(jīng)常使用,要說的最后一種,先看一個例子1.5?string("0")和2.5?string("0") 的值都是2 說明如下:

  在金融和統(tǒng)計(jì)學(xué)中,四舍五入都是根據(jù)所謂的一半原則,這就意味著對最近的“鄰居”進(jìn)行四舍五入,除非離兩個鄰居距離相等,這種情況下,它四舍五入到偶數(shù)的鄰居。如果你注意看 1.5 和 2.5 的四舍五入的話,這在上面的示例中是可以看到的,兩個都被四舍五入到2,因?yàn)?2 是偶數(shù),但 1 和 3 是奇數(shù)。

  用法:假設(shè)strnum是一個數(shù)字,則可以這樣寫${strnum?round(floor/ceiling)} 或者${strmun?string("0")}

  可能用法:

  可用在一些對數(shù)字精確度不高的情況(分頁處理時也許有用),一些對小數(shù)敏感的,還是用 string函數(shù)

  例如:

  ${num?string('0.00')}

  如果小數(shù)點(diǎn)后不足兩位,用 0 代替

  ${num?string('#.##')}

  如果小數(shù)點(diǎn)后多余兩位,就只保留兩位,否則輸出實(shí)際值

  輸出為:1239765.46

  ${num?string(',###.00')}

  輸出為:1,239,765.46

  整數(shù)部分每三位用 , 分割,并且保證小數(shù)點(diǎn)后保留兩位,不足用 0 代替

  ${num?string(',###.##')}

  輸出為:1,239,765.46

  整數(shù)部分每三位用 , 分割,并且小數(shù)點(diǎn)后多余兩位就只保留兩位,不足兩位就取實(shí)際位數(shù),可以不不包含小數(shù)點(diǎn)

  ${num?string('000.00')}

  輸出為:012.70

  整數(shù)部分如果不足三位(000),前面用0補(bǔ)齊,否則取實(shí)際的整數(shù)位

  ${num?string('###.00')}

  等價于

  ${num?string('#.00')}

  輸出為:12.70

  freemarker數(shù)字格式化帶來的操作問題

  freemarker在解析數(shù)據(jù)格式的時候,自動默認(rèn)將數(shù)字按3為分割(1,000),這個問題給操作帶來一定的額外處理復(fù)雜度,解決方法有如下幾種:

  1、在模板中直接加.toString()轉(zhuǎn)化數(shù)字為字符串,如:

  ${languageList.id.toString()};

  2、在freemarker配置文件freemarker.properties加

  <#setting number_format="#">或者 <#setting number_format="0">;

  3、在模板中直接加<#setting number_format="#">或者<#setting number_format="0">,如:<#if

  AdminLanguagePaginationMsg?exists>

  <#setting number_format="#">

  對于數(shù)字的格式化,可采用strng 和number_format 設(shè)置

  數(shù)字格式化的優(yōu)先級: string優(yōu)先級最高,配置文件配置的優(yōu)先級最低,在頁面setting的優(yōu)先級在兩者之間。

  整數(shù)取實(shí)際的位數(shù)關(guān)于string指令的更多用法,可以訪問官方文檔:http://freemarker.sourceforge.net/docs/ref_builtins_number.html#ref_builtin_string_for_number

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西华县| 新宁县| 南川市| 白水县| 宜昌市| 永靖县| 乐清市| 陈巴尔虎旗| 应用必备| 舞阳县| 阿克陶县| 沁源县| 阿尔山市| 阜南县| 武汉市| 华亭县| 龙岩市| 盐城市| 白山市| 曲麻莱县| 同德县| 漳州市| 昌宁县| 永泰县| 德格县| 松原市| 安乡县| 库尔勒市| 玛沁县| 双牌县| 尼勒克县| 汉沽区| 宝兴县| 黎平县| 沐川县| 武鸣县| 房产| 花垣县| 甘德县| 河北区| 抚远县|