2014-02-10 63 views
0

我無法存儲被最終用戶接受的雙字段。 如果用戶輸入100.00值出現鬆動小數位和被顯示爲100.0 的JSP我使用接受用戶輸入的樣子:顯示Java double的JSP問題

<fmt:formatNumber type="number" groupingUsed="false" maxFractionDigits="2" value="${payment.netPayment}" var="fmtNetPayment"/> 
    <form:input path="netPayment" id="netPayment" value="${fmtNetPayment}" cssErrorClass="error"/> 
     <form:errors path="netPayment"> 
      <span class="errorBox"> 
      <span class="errorArrow"></span> 
      <span class="errorMsg"><form:errors path="netPayment"/></span> 
      </span> 
    </form:errors> 

當我通過我的一個項目環彙總頁面使用以下代碼時,金額顯示爲100.0時它應顯示兩位小數作爲100.00

<div> 
    <span class="netPayment"></span> 
    <c:out value="${payment.netPayment}"/>             
</div> 

任何想法?

+0

100.00與100.0有什麼不同?雙是一個數字,而不是一個字符串。 –

+0

我總是需要顯示兩位小數 – user676567

+0

答案在於:使用''而不是直接顯示double值。 –

回答

2

格式化一個數字,並將其發送到JSP寫入器(即顯示它),除非使用var屬性,在這種情況下,它將格式化的數字存儲在頁面屬性中。所以你只需要

<fmt:formatNumber value="${payment.netPayment}" type="number" groupingUsed="false" maxFractionDigits="2" /> 

請注意,用雙表示金額是一個壞主意。你應該更喜歡BigDecimal。