Freemarker 将 int 值显示为 double 值(例如将 0 打印为 0.00)
Freemarker displays int value as double value(e.g. prints 0 as 0.00)
我正在尝试编写一个包含 table 信息的 freemarker 模板文件。
我在模板中写了“${noRows}”用于 table 行计数。
noRows 是一个 int 值:
int noOfRows = myTable.getNumRows();
data.put("noRows", noOfRows);
noOfRows 始终是一个整数值,但在输出文件中它显示为双精度值并附加了“.00”。
如何只显示整数值。
如果该值确实是一个整数,您需要做的就是
${noOfRows?string}
您也可以使用Java十进制数格式语法:
${noOfRow?string["0"]}
参考:http://freemarker.org/docs/ref_builtins_number.html#ref_builtin_string_for_number
显然,您的 number_format
设置设为 0.00
或类似的设置。 (FreeMarker 在格式化数字时不关心 Integer
VS Double
。它只有一个数字类型,并根据该设置格式化所有数字。)在配置 FreeMarker 的任何地方检查它。不得已,您也可以在模板中设置此设置,如 <#setting number_format="0.##">
。最后一点,正如 "sev" 所说,您可以在每个地方单独指定格式。
我正在尝试编写一个包含 table 信息的 freemarker 模板文件。
我在模板中写了“${noRows}”用于 table 行计数。
noRows 是一个 int 值:
int noOfRows = myTable.getNumRows();
data.put("noRows", noOfRows);
noOfRows 始终是一个整数值,但在输出文件中它显示为双精度值并附加了“.00”。
如何只显示整数值。
如果该值确实是一个整数,您需要做的就是
${noOfRows?string}
您也可以使用Java十进制数格式语法:
${noOfRow?string["0"]}
参考:http://freemarker.org/docs/ref_builtins_number.html#ref_builtin_string_for_number
显然,您的 number_format
设置设为 0.00
或类似的设置。 (FreeMarker 在格式化数字时不关心 Integer
VS Double
。它只有一个数字类型,并根据该设置格式化所有数字。)在配置 FreeMarker 的任何地方检查它。不得已,您也可以在模板中设置此设置,如 <#setting number_format="0.##">
。最后一点,正如 "sev" 所说,您可以在每个地方单独指定格式。