fmt:formatNumber отображать отрицательную валюту в формате -$xxx.xx в JSTL

Я использую fmt:formatNumber для форматирования валюты в JSTL, она будет отображать отрицательную валюту в формате (100 долларов США), как мне заставить ее отображать отрицательную валюту в отрицательном формате вместо (100 долларов США)?

Спасибо большое,

Сью


person user288870    schedule 08.03.2010    source источник


Ответы (3)


Я бы предложил: <fmt:formatNumber type="currency" pattern="$#,##0.00;-$#,##0.00" value="-10000" />

Вы можете удалить '$' из шаблона, если хотите.

person JGaudette    schedule 08.03.2010
comment
Проблема с этим решением заключается в том, что оно всегда будет отображать «$» как валютный символ. Если вы пытаетесь отобразить валюту en €, это не сработает. - person Neuquino; 14.04.2011
comment
ну, вы можете использовать pattern=#,##0.00;-#,##0.00, это не будет отображать символ «$» - person andyCao; 28.07.2016

Если вы используете атрибут шаблона и хотите отобразить символ валюты, вам необходимо добавить заполнитель символа валюты ( ¤ ) к самому шаблону. ¤ будет заменено заданным значением currencySymbol.

В примере я показываю два формата в атрибуте шаблона. Один для положительных значений и один для отрицательных значений. Они разделяются точкой с запятой ';'. Оба используют заполнитель для currencySymbol.

Пример:

<fmt:formatNumber value="-10000" type="currency" currencySymbol="$" pattern="¤ #,##0.00;¤ -#,##0.00"/>
person Merlin    schedule 16.01.2012

Просто добавьте, что если вы используете тип как валюту, тогда требуется currencyCode, иначе отображается какой-то случайный символ. Если вы не хотите использовать валютный код [он будет отображать то, что каждый из вас указал в валютном коде], используйте шаблон, например

<fmt:formatNumber type="currency" pattern="#,##0.00;" value="-10000" />
person Roopak    schedule 14.04.2011