鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ freemark數(shù)值如何保留兩位小數(shù)的同時,使用進(jìn)一法

freemark數(shù)值如何保留兩位小數(shù)的同時,使用進(jìn)一法

例如我要使 123.451 -> 123.46
使用freemarker ${123.451?String(",##0.00)} 得到的卻是 123.45
我試過使用ceiling函數(shù),但是${123.45?ceiling} 得到的是124
該如何得到我想要保留的位數(shù)并且尾數(shù)使用進(jìn)一法呢

回答
編輯回答
薄荷綠
  1. 修改原數(shù), 四舍五入就加 0.005, 進(jìn)一就加0.009或0.0099999,看心情
  2. 放大100倍,ceilling, 再縮小100倍

<#function round2 n>
     <#if n?is_number><#return ((n*100)?round/100)? 
string><#else><#return n></#if>
</#function>

<#escape x as round2(x)>
... 可以這一段模板中的數(shù)都按round2規(guī)則輸出  ...

</#escape>

或用ceilling, 如您所需

<#function round2 n>
     <#if n?is_number><#return ((n*100)?ceiling/100)? 
string><#else><#return n></#if>
</#function>
2018年3月14日 16:51