Как использовать fmt: formatNumber с 2 десятичными - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть значение 6666666666666666.6 и использование fmt: formatNumber для форматирования на jsp (jstl)

<fmt:formatNumber type="NUMBER"
                  minFractionDigits="2"
                  maxFractionDigits="2"
                  value="6666666666666666.6"/>

Отображение результата: 6 666 666 666 666 667,00

Ожидаемый результат: 6 666 666 666 666 666,60

Пожалуйста, поделитесьмне решение.

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 октября 2018
<c:set var="N-15-digits" value=${666,666,666,666,666.6}/>
<c:set var="N-16-digits" value=${6,666,666,666,666,666.6}/>     
<fmt:formatNumber value="${N-(0.1-(N%0.1))%0.1}"  type="number"  minFractionDigits="2"/>

Это решение всегда может отображаться без округления. Если входное значение меньше 16 цифр, сравнение результатов выполняется следующим образом.

N-15-значные цифры показывают

666 666 666 666 666,60

N-16-значные цифры показывают

6 666 666 666 666 667,00

0 голосов
/ 28 сентября 2018

Вы пытались изменить тип с number на currency?

<fmt:formatNumber type="CURRENCY"
                  minFractionDigits="2"
                  maxFractionDigits="2"
                  value="6666666666666666.6"/>
...