java、freemarker保留兩位小數(shù)
一、Java保留2位小數(shù)
double acc = 22.4322;
String accX = String.format("%.2f", acc);
二、freemarker保留兩位小數(shù)
<#if centerFreeSize??>
${centerFreeSize?string("#.##")}
<#else>
0.00
</#if>
補(bǔ)充:freemarker保留小數(shù)
freemarker保留兩位小數(shù)
方法一
#{number ;m1M2} m 最少幾位小數(shù),M最多幾位小數(shù)
方法二
${x?string("0.##")}
在開發(fā)中很容易忽視一點(diǎn),輸入一個(gè)值(可能是小數(shù)),輸出時(shí)如果不做處理,就很容易出現(xiàn)
隱形的BUG。比如,如果從數(shù)據(jù)庫(kù)取出一個(gè)0.22的數(shù)值,一般的輸出${x?if_exists?html}, 這時(shí)是顯示0,而不是0.22。
應(yīng)該寫成${x?if_exists?string.number} 或者 ${x?if_exists.toString()?html}
1, 小于1的數(shù)字在freemarker中相減錯(cuò)誤
2,1000,2000這類的數(shù)字在freemarker中的格式錯(cuò)誤,會(huì)被解釋成1,000
解決方法設(shè)置number在freemarker的顯示格式
Xml代碼
<#setting number_format="0.00">
<#assign x="${goodsgroupt.memberprice}"/>
<#assign y="${goodsgroupt.groupprice}"/>
${(x?number-y?number)}
重點(diǎn)就是這個(gè)number_format了
網(wǎng)上說(shuō)讓number_format="0",這樣只能解決第二種情況。
四、局部設(shè)置
特點(diǎn):
如果在某個(gè)頁(yè)面,或者某幾個(gè)頁(yè)面(其它頁(yè)面可import進(jìn)來(lái)),用到的數(shù)字格式化是相同的,可考慮統(tǒng)一配置數(shù)字的格式化形式
用法:
只需在用到需要格式化的數(shù)字之前 設(shè)置就可以了,格式如下: <#setting number_format=",##0.##"> 其中",##0.##"的內(nèi)容是采用類似于Java中數(shù)字格式的語(yǔ)法形式,也就是以上的第三點(diǎn)。
注意:
如果用在一個(gè)頁(yè)面,則整個(gè)頁(yè)面默認(rèn)就是那種格式,除非用string函數(shù)覆蓋了默認(rèn)的格式,同樣的,如果放在一個(gè)公共的頁(yè)面,其它頁(yè)面只要include它,也會(huì)是同樣的格式。
五、全局設(shè)置
特點(diǎn):
在所有的頁(yè)面都默認(rèn)提供數(shù)字的格式化形式
用法
(針對(duì)spring):在freemarker的配置文件中設(shè)置其默認(rèn)的數(shù)字格式化形式,如下:
代碼如下
< property name = "freemarkerSettings" >
< props>
.....
< prop key = "number_format"> 0.## </prop >
......
</props>
</property>
相關(guān)文章
java實(shí)現(xiàn)雙色球機(jī)選號(hào)碼生成器
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)雙色球機(jī)選號(hào)碼生成器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01
存儲(chǔ)過(guò)程創(chuàng)建及springboot代碼調(diào)用存儲(chǔ)過(guò)程方式
文章介紹了如何在Navicat中創(chuàng)建存儲(chǔ)過(guò)程,并在Spring Boot項(xiàng)目中調(diào)用存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程創(chuàng)建步驟包括選擇函數(shù)類型、自定義函數(shù)名、添加參數(shù)等,在Spring Boot中調(diào)用存儲(chǔ)過(guò)程時(shí),可以通過(guò)JdbcTemplate或MyBatis等工具進(jìn)行2024-11-11
SpringBoot如何使用validator框架優(yōu)雅地校驗(yàn)參數(shù)
文章介紹了如何使用SpringValidation進(jìn)行參數(shù)校驗(yàn),包括引入依賴、@requestBody和@requestParam參數(shù)校驗(yàn)、統(tǒng)一異常處理、分組校驗(yàn)、嵌套校驗(yàn)、自定義校驗(yàn)、業(yè)務(wù)規(guī)則校驗(yàn)以及@Valid和@Validated的區(qū)別,同時(shí),列舉了常用的BeanValidation和HibernateValidator注解2025-02-02
Java 中解決Unsupported major.minor version 51.0的問(wèn)題
本文主要介紹解決Unsupported major.minor version 51.0的問(wèn)題, 這里給大家整理了詳細(xì)資料,有需要的小伙伴可以參考下2016-08-08
Java實(shí)現(xiàn)支付寶之第三方支付寶即時(shí)到賬支付功能
這篇文章主要介紹了Java實(shí)現(xiàn)支付寶之第三方支付寶即時(shí)到賬支付功能的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
詳解Java中使用externds關(guān)鍵字繼承類的用法
子類使用extends繼承父類是Java面向?qū)ο缶幊讨械幕A(chǔ)知識(shí),這里我們就來(lái)詳解Java中使用externds關(guān)鍵字繼承類的用法,需要的朋友可以參考下2016-07-07
關(guān)于struts返回對(duì)象json格式數(shù)據(jù)的方法
以下為大家介紹,關(guān)于struts返回對(duì)象json格式數(shù)據(jù)的方法,希望對(duì)有需要的朋友有所幫助。2013-04-04

