2012-03-23 117 views
2

我试图输出漂亮的数字从我FreeMarker模板的GeoServer:将散列字符串转换为格式化的数字?

 <#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

尝试:$ {((feature [attribute.name] .value * 10000)?round)/ 10000} – stark 2012-03-23 21:20:09

回答

4

如果你总是希望4位小数:

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

如果你想至多4位小数,那么如果value是一个字符串时,才需要?string("0.####")

?number部分。在这种情况下,你应该写[...].value?number?string("0.0000")。没有这样的东西?number.string,因此“预期的散列”错误消息。

相关问题