Преобразовать строку хеша в форматированное число? - PullRequest
2 голосов
/ 24 марта 2012

Я пытаюсь вывести более симпатичные числа из моего 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")}

Но те жалуются на «ожидаемый хеш», поэтому я чувствую, что это просто проблема синтаксиса правильной передачи строки в хэше оператору ?, так что я фактически выполняю методы для строки ... но это поставило меня в тупик.

1 Ответ

4 голосов
/ 25 марта 2012

Если вы всегда хотите 4 знака после запятой:

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

Если вы хотите максимум 4 знака после запятой, то ?string("0.####")

Часть ?number необходима только в том случае, еслистрока.В этом случае вы должны написать [...].value?number?string("0.0000").Нет такой вещи как ?number.string, следовательно, сообщение об ожидаемом хэше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...