首頁  >  文章  >  Java  >  java freemarker保留兩位小數的範例程式碼分享

java freemarker保留兩位小數的範例程式碼分享

黄舟
黄舟原創
2017-03-21 10:55:492303瀏覽

這篇文章主要介紹了java、freemarker保留兩位小數的實現方法,然後給大家補充介紹了freemarker保留兩位小數的詳解,需要的朋友可以參考下

 一、Java保留2位小數

double acc = 22.4322;
String accX = String.format("%.2f", acc);

二、freemarker保留兩位小數

<#if centerFreeSize??>
  ${centerFreeSize?string("#.##")}
<#else>
  0.00
</#if>

補充:freemarker保留小數

freemarker保留兩位小數

方法一

    #{number ;m1M2}#    m 最少幾位小數,M最多幾位小數

方法二

#  ${x?string("0.##")}   

在開發中很容易忽略一點,輸入一個值(可能是小數),輸出時如果不做處理,就很容易出現

隱形的BUG。例如,如果從資料庫取出一個0.22的數值,一般的輸出${x?if_exists?html}, 這時是顯示0,而不是0.22。

應該寫成${x?if_exists?string.number} 或${x?if_exists.toString()?html}

1, 小於1的數字在freemarker中相減錯誤

2,1000,2000這類的數字在freemarker中的格式錯誤,會解釋成1,000 

解決方法設定number在freemarker的顯示格式

Xml程式碼

<#setting number_format="0.00"> 
  <#assign x="${goodsgroupt.memberprice}"/> 
  <#assign y="${goodsgroupt.groupprice}"/> 
  ${(x?number-y?number)}

重點就是這個number_format了

網路上說讓number_format="0",這樣只能解決第二種情況。

四、局部設定

特點:

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

用法:

#只需在用到需要格式化的數字之前設定就可以了,格式如下: 026382d611557f36b3141e0ae251962a  其中",##0.##"的內容是採用類似Java中數字格式的語法形式,也就是以上的第三點。

注意:

如果用在一個頁面,則整個頁面預設就是那種格式,除非用string函數覆寫了預設的格式,同樣的,如果放在一個公共的頁面,其它頁面只要include它,也會是同樣的格式。

五、全域設定

特點:

在所有的頁面都預設提供數字的格式化形式

用法

(針對spring):在freemarker的設定檔中設定其預設的數字格式化形式,如下:

 程式碼如下

< property name = "freemarkerSettings" >
     < props>
        .....
       < prop key = "number_format"> 0.## </prop >
        ......
     </props>
</property>

以上是java freemarker保留兩位小數的範例程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn