Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 强制FreeMarker始终打印带小数点的BigDecimal值_Java_Spring Mvc_Freemarker_Bigdecimal - Fatal编程技术网

Java 强制FreeMarker始终打印带小数点的BigDecimal值

Java 强制FreeMarker始终打印带小数点的BigDecimal值,java,spring-mvc,freemarker,bigdecimal,Java,Spring Mvc,Freemarker,Bigdecimal,在使用FreeMarker渲染视图的Spring MVC应用程序中,如何强制FreeMarker始终打印带有小数点的BigDecimal值 例如: 1000.12 -> 1000.12 1000 -> 1000.00 我试过了 ${value?string("0.##")} 这将1000.12正确地打印为1000.12,但1000仍然打印为1000,而不是1000.00。您是否尝试过${1000?字符串(“0.00”)} 如果您需要将数字向下舍入,请使用((n*100)?f

在使用FreeMarker渲染视图的Spring MVC应用程序中,如何强制FreeMarker始终打印带有小数点的BigDecimal值

例如:

1000.12 -> 1000.12
1000    -> 1000.00
我试过了

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

这将1000.12正确地打印为1000.12,但1000仍然打印为1000,而不是1000.00。

您是否尝试过
${1000?字符串(“0.00”)}


如果您需要将数字向下舍入,请使用
((n*100)?floor)/100.0
表达式

是的,我已经尝试过了。1000变为1000.00,1000.12保持为1000.12,但1000.4567变为1000.46(由于某些原因而四舍五入),而我需要1000.45(数字不变)。然后我建议您使用((n*100)?floor)/100。0@manish.in.java:这是因为FreeMarker只使用了
java.text.DecimalFormat
,而且总是使用
ROUND\u-HALF\u甚至
。(FreeMarker应该允许自定义
NumberFormat
实现)。无论如何,您可以为此编写
TemplateMethodModelEx
,并像
${twoDecimals(1000)}
${my.twoDecimals(1000)}
一样使用它。我感谢您提供的指针。我将按照你的建议去做。