将哈希字符串转换为格式化数字?

时间:2012-03-23 21:03:03

标签: freemarker

我正在尝试从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")}

但是那些抱怨“预期哈希。”,所以我觉得这只是将哈希中的字符串正确传递给?运算符的语法问题,所以我实际上是在执行方法字符串...但这让我很难过。

1 个答案:

答案 0 :(得分:4)

如果您总是想要4位小数:

${feature[attribute.name].value?string("0.0000")}

如果您想要最多4个小数,那么?string("0.####")

仅当?number是字符串时才需要value部分。在这种情况下,您应该写[...].value?number?string("0.0000")。没有?number.string这样的东西,因此是“预期的哈希”错误消息。