${4511.25?string("#.#")} 这个表达式的结果为4511.2;并不是传统的四舍五入规则;正确的应该是下面这个表达式:
${4511.25?string("#.#;;roundingMode=halfUp")} 这个表达式的结果为4511.3。
而 ${4511.35?string("#.#")} 这个表达式的结果是4511.4
FreeMarker默认的规则是5可能进位也可能不进位,取决于进位后前面一位是否为偶数,如果是则进位,否则不进位。
在String函数中加入roundingMode=halfUp并与前面表达式用";;"隔开;也就是类似于string("#.#;;roundingMode=halfUp")这种形式可以实现四舍五入。
官方文档 https://freemarker.apache.org/docs/ref_builtins_number.html#topic.extendedJavaDecimalFormat