我正在尝试从GeoServer中的FreeMarker模板输出更漂亮的数字:
<#list features as feature>
<#if attribute.name="lon" || attribute.name="lat">
<td>${feature[attribute.name].value?round}</td>
<#else>
<td>${feature[attribute.name].value}</td>
</#if>
</#list>
如果我拿出?round
,我会收到类似“-121.469166666667”的内容。我只想稍微格式化一下这个数字,比如将它四舍五入到小数点后4位。
我尝试了几件事:
${feature[attribute.name].value?number}
${(feature[attribute.name].value)?number.string("0.0000")}
但是那些抱怨“预期哈希。”,所以我觉得这只是将哈希中的字符串正确传递给?
运算符的语法问题,所以我实际上是在执行方法字符串...但这让我很难过。
答案 0 :(得分:4)
如果您总是想要4位小数:
${feature[attribute.name].value?string("0.0000")}
如果您想要最多4个小数,那么?string("0.####")
仅当?number
是字符串时才需要value
部分。在这种情况下,您应该写[...].value?number?string("0.0000")
。没有?number.string
这样的东西,因此是“预期的哈希”错误消息。