2015-12-22 44 views
-1

我有這樣的jsp輸入文本代碼:JSP檢查值是十進制

<td> 
     <input type="text" name="qty" id="qty" size="10" value=<%=quantitySet%> 
      class='<%=stkAdjFrm.itemObj.isDecimalItemType()?<???>:<???>%>' 
      onblur="chkZero(this.value,'qty','qtyError','Quantity must not be zero');" />&nbsp; 
     <label id="qtyError" for="qtyError" class="errMsg"></label>   
    </td>      

類檢查該值是否是十進制或非小數。任何想法在條件下放置什麼?

如果它的小數點需要顯示6位小數,否則根本不顯示小數位。

+0

定義「小數」。 'double'? 'float'? 'BigDecimal'? ' 「3.12」'?是'double',值爲小數點'1'嗎?如果你需要顯示6位小數,你不應該設置'value'屬性而不是'class'嗎? – Andreas

+0

[使用CSS格式化數字(小數位數,數千分隔符等)]可能的副本(http://stackoverflow.com/questions/8677805/formatting-numbers-decimal-places-thousands-separators-etc-with-css) –

+0

儘管在數據庫中都有小數(數字(30,12)),但它只需要顯示基於項目的小數位數,因爲某些項目不需要小數。BigDecimal在Define Decimal上回答您的問題。 –

回答

0
<td> 
    <% if (stkAdjFrm.itemObj.isDecimalItemType()) { %> 
     <%@ page import="java.text.NumberFormat" %> 
     <% NumberFormat nf = NumberFormat.getInstance(); 
     nf.setMaximumFractionDigits(6); 
     nf.setMinimumFractionDigits(6); %> 

     <input type="text" name="qty" id="qty" size="10" value=<%=nf.format(0)%> 
     onblur="chkZero(this.value,'qty','qtyError','Quantity must not be zero');" />&nbsp; 
     <label id="qtyError" for="qtyError" class="errMsg"></label>   

    <% } else { %> 

     <input type="text" name="qty" id="qty" size="10" value=<%=quantitySet%> 
     class="kendo-numeric" 
     onblur="chkZero(this.value,'qty','qtyError','Quantity must not be zero');" />&nbsp; 
     <label id="qtyError" for="qtyError" class="errMsg"></label>   

    <% } %> 
</td>      

只要使用NumberFormat並放棄該類,如果需要小數位。