Подтвердить что ты не робот

Как форматировать валюту в HTML5 с тимелеафом

Я застрял в форматировании валюты в HTML 5. У меня есть приложение, в котором мне нужно форматировать валюту. У меня ниже фрагмента кода

 <td class="right"><span th:inline="text">$ [[${abc.value}]]</span></td>

Где из DAO abc я читаю значение валюты, оно должно быть отформатировано. В настоящее время печатается $1200000.0, он должен печатать $1,200,000.0.0

4b9b3361

Ответ 1

Вы можете использовать служебный объект #numbers, какие методы вы можете увидеть здесь: http://www.thymeleaf.org/apidocs/thymeleaf/2.0.15/org/thymeleaf/expression/Numbers.html

Например:

<span th:inline="text">$ [[${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}]]</span>

Тем не менее, вы также можете сделать это без встраивания (что является рекомендуемым тимелеаном):

<td>$ <span th:text="${#numbers.formatDecimal(abc.value, 0, 'COMMA', 2, 'POINT')}">10.00</span></td>

Ответ 2

Я рекомендую использовать значение DEFAULT (= на основе локали), если ваше приложение имеет дело с разными языками:

${#numbers.formatDecimal(abc.value, 1, 'DEFAULT', 2, 'DEFAULT')}

Из документа Thymeleaf (точнее NumberPointType):

/* 
 * Set minimum integer digits and thousands separator: 
 * 'POINT', 'COMMA', 'NONE' or 'DEFAULT' (by locale).
 * Also works with arrays, lists or sets
 */
${#numbers.formatInteger(num,3,'POINT')}
${#numbers.arrayFormatInteger(numArray,3,'POINT')}
${#numbers.listFormatInteger(numList,3,'POINT')}
${#numbers.setFormatInteger(numSet,3,'POINT')}

/*
 * Set minimum integer digits and (exact) decimal digits, and also decimal separator.
 * Also works with arrays, lists or sets
 */
${#numbers.formatDecimal(num,3,2,'COMMA')}
${#numbers.arrayFormatDecimal(numArray,3,2,'COMMA')}
${#numbers.listFormatDecimal(numList,3,2,'COMMA')}
${#numbers.setFormatDecimal(numSet,3,2,'COMMA')}

Ответ 3

Теперь вы можете более просто вызвать метод formatCurrency в утилите numbers:

#numbers.formatCurrency(abc.value)

Это также устранит необходимость в символе валюты.

Пример: <span th:remove="tag" th:text="${#numbers.formatCurrency(abc.value)}">$100</span>

Ответ 4

Вы бы встроили, используя служебный объект Thymeleaf numbers следующим образом:

<span>[[${#numbers.formatCurrency(abc.value)}]]</span>

В представлении это даже добавит знак доллара ($) для Вас.