2013-01-04 94 views
18

Tôi bị kẹt với định dạng đơn vị tiền tệ trong HTML 5. Tôi có đơn đăng ký mà tôi phải định dạng đơn vị tiền tệ. Tôi có đoạn mã bên dướiCách định dạng đơn vị tiền tệ bằng HTML5 với thymeleaf

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

Nơi từ DAO abc Tôi đang đọc giá trị tiền tệ, nó phải được định dạng. Hiện nay in $ 1.200.000,0 nó nên in $ 1,200,000.0 .0

Trả lời

34

Bạn có thể sử dụng đối tượng #numbers tiện ích, trong đó phương pháp bạn có thể xem tại đây: http://www.thymeleaf.org/apidocs/thymeleaf/2.0.15/org/thymeleaf/expression/Numbers.html

Ví dụ:

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

Tuy nhiên, bạn có thể cũng làm điều này mà không có nội tuyến (đó là cách đề nghị thymeleaf):

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

Có khả năng để loại bỏ '10.00' của zero, hmm Nó sẽ sạch hơn để chỉ hiển thị các số thập phân khi có bất kỳ, nhưng nếu chúng ta có một số thập phân để nó có được làm tròn tới '435.89' ?? – azerafati

7

Tôi reco mmend sử dụng DEFAULT giá trị (= dựa trên miền địa phương) trong trường hợp ứng dụng của bạn có để đối phó với các ngôn ngữ khác nhau:

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

Từ Thymeleaf doc (chính xác hơn 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')} 
0

Bạn có thể bây giờ đơn giản chỉ cần gọi phương thức formatCurrency trong tiện ích numbers:

#numbers.formatCurrency(abc.value)

Điều này cũng sẽ giải phóng sự cần thiết của một biểu tượng tiền tệ.

Ví dụ: <span th:remove="tag" th:text="${#numbers.formatCurrency(abc.value)}">$100</span>

Các vấn đề liên quan