2
在使用FreeMarker渲染視圖的Spring MVC應用程序中,如何強制FreeMarker始終使用小數點打印BigDecimal值?強制FreeMarker始終使用小數點打印BigDecimal值
例如:
1000.12 -> 1000.12
1000 -> 1000.00
我試圖
${value?string("0.##")}
此正確地打印1000.12作爲1000.12但仍然1000打印爲1000,而不是1000.00。
是的,我已經嘗試過了。 1000變爲1000.00和1000.12保留1000.12,但1000.4567變爲1000.46(由於某種原因被舍入),而我需要1000.45(數字,因爲它們)。 – manish
然後我建議你使用((n * 100)?floor)/ 100.0 – hoaz
@ manish.in.java:這是因爲FreeMarker只是使用'java.text.DecimalFormat',並且總是使用'ROUND_HALF_EVEN'。 (看起來FreeMarker應該允許自定義的'NumberFormat'實現)。無論如何,你可以爲此寫'TemplateMethodModelEx',並且像'$ {twoDecimals(1000)}'或'$ {my.twoDecimals(1000)}'一樣使用它。 – ddekany