${4511.25?string("#.#")}  這個表達式的結(jié)果為4511.2;并不是傳統(tǒng)的四舍五入規(guī)則;正確的應(yīng)該是下面這個表達式:

${4511.25?string("#.#;;roundingMode=halfUp")} 這個表達式的結(jié)果為4511.3。

而 ${4511.35?string("#.#")}   這個表達式的結(jié)果是4511.4

FreeMarker默認的規(guī)則是5可能進位也可能不進位,取決于進位后前面一位是否為偶數(shù),如果是則進位,否則不進位。

在String函數(shù)中加入roundingMode=halfUp并與前面表達式用";;"隔開;也就是類似于string("#.#;;roundingMode=halfUp")這種形式可以實現(xiàn)四舍五入。

官方文檔:https://freemarker.apache.org/docs/ref_builtins_number.html

上述文檔來源:https://blog.csdn.net/bingxing163/article/details/97784845

在String函數(shù)中加入roundingMode=halfDown并與前面表達式用";;"隔開;也就是類似于string("#.#;;roundingMode=halfDown")這種形式可以實現(xiàn)去尾保留兩位小數(shù)。

例如 .ftl頁面中<#if totalMoney??>${totalMoney?string("#,##0.00;;roundingMode=halfDown")}</#if>實現(xiàn)每三位用逗號隔開,保留兩位小數(shù)不進行四舍五入。