在 FTL 中使用 ?string("0.00") 时出错

Error when using ?string("0.00") in FTL

在我的 FTL 文件中使用 ?string("0.00") 时出现以下错误,如下所示

${currency}${discount?string("0.00")}

discount 是 BigDecimal 类型,来自我的 java 代码。

2017-02-16 10:48:08.481 [http-nio-80-exec-3] ERROR freemarker.runtime - Template processing error: "Expected method. discount?string evaluated instead to freemarker.template.SimpleScalar on line 56, column 154 in WEB-INF/views/abc/abc-result.ftl." freemarker.template.TemplateException: Expected method. discount?string evaluated instead to freemarker.template.SimpleScalar on line 56, column 154 in WEB-INF/views/abc/abc-result.ftl. at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:136) ~[freemarker-2.3.19.jar:2.3.19] at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:114) ~[freemarker-2.3.19.jar:2.3.19] at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) ~[freemarker-2.3.19.jar:2.3.19] at freemarker.core.Expression.getStringValue(Expression.java:93) ~[freemarker-2.3.19.jar:2.3.19]

我正好修好了。我将其更改为 ${currency}${discount?number?string("0.00")} 我从 java 端传递 BigDecimal 但不确定为什么我需要再次转换为数字