天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

freemarker 數(shù)字格式化深入理解

一、使用內(nèi)建函數(shù)c
特點:
不管其表現(xiàn)形式是怎樣的(例如"123,456.123,456"、"123456.123456"、"000123456.123456000"、"123,456.123456"、"1,2345,6.123456"),只要小數(shù)分割符是'.'它就能轉化成計算機能夠識別的字符串形式,而且都是123456.123456,計算機處理的時候是沒有那些所謂的千位分隔符的(空格或逗號),而且計算機支持的最大的小數(shù)點后面的位數(shù)是16位,目前來說,已經(jīng)夠我們用了。
用法:
假設strmun是一個字符串形式的數(shù)字,則可以這樣寫${strnum?c},例如${"123,456.123,456"?c}值為123456.123456
可能用處:
對一些表單允許用戶按照個人習慣輸入數(shù)字,提交的時候統(tǒng)一轉換

二、使用預定義的數(shù)字格式
有四種預定義的數(shù)字格式,分別是computer(跟內(nèi)建函數(shù)c功能一樣,用法不一樣)、currency(貨幣格式)、number(數(shù)字格式)、percent(百分比形式)
特點:
這些格式的明確含義是本地化(國家)指定的,受Java平臺安裝環(huán)境所控制,而不是FreeMarker,所以不建議用這些函數(shù),而且受默認數(shù)字格式的影響,用法不靈活。

三、使用類似于Java中數(shù)字格式語法形式
特點:
例如"0.#",左邊的'0'的個數(shù)代表整數(shù)部分最少為多少位,右邊'#"的個數(shù)代表小數(shù)部分最多為多少位;例如",##0.0#"表示整數(shù)部分的千位分割符是',',小數(shù)部分最多保留兩位,最少保留一位;例如"0.##%"以百分比的形式表示,小數(shù)部分最多兩位。
用法:
假設strnum是一個數(shù)字,則可以這樣寫${strnum?string(",##0.0#")},例如${123456.123456?string(",##0.0#")}值為123,456.12
注意:
數(shù)字格式是本地化敏感的,不過我們一般都會給freemarker設置默認的本地化語言,問題不大。
可能用處:
當在某一個地方突然要用到數(shù)字格式時,調(diào)用string函數(shù)是可以的,當在很多地方都需要用到數(shù)字格式是,這樣處理太麻煩了,可以考慮設置默認的數(shù)字格式化形式

四、局部設置
特點:
如果在某個頁面,或者某幾個頁面(其它頁面可import進來),用到的數(shù)字格式化是相同的,可考慮統(tǒng)一配置數(shù)字的格式化形式
用法:
只需在用到需要格式化的數(shù)字之前設置就可以了,格式如下:<#settingnumber_format=",##0.##">其中",##0.##"的內(nèi)容是采用類似于Java中數(shù)字格式的語法形式,也就是以上的第三點。
注意:
如果用在一個頁面,則整個頁面默認就是那種格式,除非用string函數(shù)覆蓋了默認的格式,同樣的,如果放在一個公共的頁面,其它頁面只要include它,也會是同樣的格式。

五、全局設置
特點:
在所有的頁面都默認提供數(shù)字的格式化形式
用法
(針對spring):在freemarker的配置文件中設置其默認的數(shù)字格式化形式,如下:
復制代碼 代碼如下:
<propertyname="freemarkerSettings">
<props>
.....
<propkey="number_format">0.##</prop>
......
</props>
</property>


六、舍入處理
有幾種舍入處理方式,分別是 round,floor,ceiling 和string("0")
特點:
前面三種,從字面上很好理解,我們也經(jīng)常使用,要說的最后一種,先看一個例子1.5?string("0")和2.5?string("0") 的值都是2 說明如下:
在金融和統(tǒng)計學中,四舍五入都是根據(jù)所謂的一半原則,這就意味著對最近的“鄰居”進行四舍五入,除非離兩個鄰居距離相等,這種情況下,它四舍五入到偶數(shù)的鄰居。如果你注意看 1.5 和 2.5 的四舍五入的話,這在上面的示例中是可以看到的,兩個都被四舍五入到2,因為 2 是偶數(shù),但 1 和 3 是奇數(shù)。
用法:假設strnum是一個數(shù)字,則可以這樣寫${strnum?round(floor/ceiling)} 或者${strmun?string("0")}
可能用法:
可用在一些對數(shù)字精確度不高的情況(分頁處理時也許有用),一些對小數(shù)敏感的,還是用 string函數(shù)
例如:
復制代碼 代碼如下:
${num?string('0.00')}

如果小數(shù)點后不足兩位,用 0 代替
復制代碼 代碼如下:
${num?string('#.##')}

如果小數(shù)點后多余兩位,就只保留兩位,否則輸出實際值
輸出為:1239765.46
復制代碼 代碼如下:
${num?string(',###.00')}

輸出為:1,239,765.46
整數(shù)部分每三位用 , 分割,并且保證小數(shù)點后保留兩位,不足用 0 代替
復制代碼 代碼如下:
${num?string(',###.##')}

輸出為:1,239,765.46
整數(shù)部分每三位用 , 分割,并且小數(shù)點后多余兩位就只保留兩位,不足兩位就取實際位數(shù),可以不不包含小數(shù)點
復制代碼 代碼如下:
${num?string('000.00')}

輸出為:012.70
整數(shù)部分如果不足三位(000),前面用0補齊,否則取實際的整數(shù)位
復制代碼 代碼如下:
${num?string('###.00')}

等價于
復制代碼 代碼如下:
${num?string('#.00')}

輸出為:12.70
freemarker數(shù)字格式化帶來的操作問題
freemarker在解析數(shù)據(jù)格式的時候,自動默認將數(shù)字按3為分割(1,000),這個問題給操作帶來一定的額外處理復雜度,解決方法有如下幾種:
1、在模板中直接加.toString()轉化數(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ù)字格式化的優(yōu)先級: string優(yōu)先級最高,配置文件配置的優(yōu)先級最低,在頁面setting的優(yōu)先級在兩者之間。

七、總結
對于數(shù)字的格式化,可采用strng和number_format設置
數(shù)字格式化的優(yōu)先級:string優(yōu)先級最高,配置文件配置的優(yōu)先級最低,在頁面setting的優(yōu)先級在兩者之間。

jsp技術freemarker 數(shù)字格式化深入理解,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲免费观看 | 色欲久久99精品久久久久久AV | 无码AV免费精品一区二区三区 | 语文老师扒开胸罩喂我奶 | 香蕉尹人综合精品 | 亚洲qingse中文字幕久久 | 国产午夜在线观看视频播放 | 日本大片免a费观看视频 | 亚洲性夜夜色综合网站 | 射90黑b丝女 | 午夜一级免费视频 | 99国内偷揿国产精品人妻 | 亚洲无吗精品AV九九久久 | 色播播影院 | 日本无翼恶漫画大全优优漫画 | 国产乱妇乱子在线播视频播放网站 | 欧美巨大xxxx做受孕妇视频 | 亚洲高清视频网站 | 18日本人XXXXXX18 | 午夜亚洲国产理论片二级港台二级 | 亚洲中文字幕在线第六区 | 国产AV精品无码免费看 | 色妞色视频一区二区三区四区 | 狠狠色香婷婷久久亚洲精品 | 中文字幕一区久久久久 | 久久亚洲精品中文字幕 | 国产精品久久久久激情影院 | 亚婷婷洲AV久久蜜臀无码 | 爱人 qvod | 免费视频久久只有精品 | 亚洲国产精品天堂在线播放 | 蜜芽资源高清在线观看 | 天天操狠狠操夜夜操 | 国产在线播放91 | 久久精品男人影院 | 饥渴的40岁熟妇完整版在线 | 亚洲欧洲日本天天堂在线观看 | 美女撒尿无遮挡免费中国 | 伊人久久综在合线影院 | 99热在线精品免费全部my | 无码日本亚洲一区久久精品 |