fmt: форматномер, как отображать дельты ( /-)

#java #jsp #formatting #jstl

#java #jsp #форматирование #jstl

Вопрос:

Я хочу использовать fmt:formatNumber для отображения следующего:

  1. .8 => 80%
  2. -.8 => -80%
  3. 1721 => 1,721
  4. 1721 => 1,721
  5. -7876 => -7,876

ОБНОВЛЕНИЕ: формат отлично работает для процентов и группировки, но он не так хорошо работает для помещения a перед числом, как в следующем:

  1. .8 => 80%
  2. 1721 => 1,721

Как я могу это сделать?

Ответ №1:

Вы можете использовать % шаблон для «умножения на 100 и отображения в процентах». Я думаю, в вашем случае вам понадобится что-то вроде этого:

 // if num < 1 amp;amp; num > -1 (or another logic)
<fmt:formatNumber value="${num}" format="%" />
// else
<fmt:formatNumber value="${num}" format="' '###,###;'-'###,###" /> // show sign
  

ОБНОВЛЕНИЕ: вы также можете использовать этот метод:

 // if num < 1 amp;amp; num > -1 (or another logic)
<fmt:formatNumber value="${num}" type="percentage" />
// else
<fmt:formatNumber value="${num}" type="number" groupingUsed="," />
  

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

1. Обновление для тех, кто сейчас читает этот вопрос: свойство format теперь является шаблоном, то есть шаблоном=»‘ ‘###,###;’-‘###,###»