Плавающий формат фреймворка Play2 в шаблоне

#java #scala #templates #playframework-2.0 #web-frameworks

#java #scala #шаблоны #playframework-2.0 #веб-фреймворки

Вопрос:

У меня возникла небольшая проблема со значением с плавающей запятой в шаблоне воспроизведения. Я написал этот код

 @String.format("%.2f",session.get("product." product.id.toString).toFloat*product.vkBrutto)
  

и я получил эту ошибку:
Значение перегруженного метода [format] не может быть применено к (String, Float)

Я уже пробовал другие способы, но это не увенчалось успехом. Я ищу возможность получить такой результат: 2,30 Может быть, кто-нибудь может мне помочь, спасибо

Комментарии:

1. Какой тип ошибки вы получаете, ошибка компиляции или ошибка времени выполнения. Один совет попробуйте упростить значение формата, поместите его в метод шаблона, если сможете.

Ответ №1:

Это неправильное использование для String.format . format должен вызываться для экземпляра a String , который содержит форматирование.

Пример:

 "%.2f".format(2.19387474)
  

возвращает «2.19».

Вам понадобится что-то вроде этого:

 @{"%.2f".format(session.get("product." product.id.toString).toFloat*product.vkBrutto)}
  

Комментарии:

1. спасибо, это работает. Мне просто интересно, что это работает: @String.format(«%.2f»,product.vkBrutto)

2. Зависит от того, какой тип product.vkBrutto есть. Использование метода в моем ответе будет безопаснее в Scala, как String.format(format, object) и реализация Java. Поэтому, когда вы передаете его a Float , он не работает, потому Float что это не Java Object .