1
我有一個奇怪的問題<f:convertNumber>
。當我將maxIntegerDigits設置爲15並輸入16的「1」時,我得到正確的數字和15個「1」,但是如果我輸入20的「1」,則不會得到15個「1」的數字,但是一個11「1」和4「0」的數字,即111111111110000,我輸入的數字越少,數字越少,得到的零點也越多。爲什麼?
這裏的代碼片段:jsf convertNumber的maxIntegerDigits
<a4j:region>
<h:inputText id="numValue" value="#{MyBean.valueN}">
<a4j:support event="onchange" limitToList="true" ajaxSingle="true" reRender="numValue"/>
<f:convertNumber groupingUsed="false" type="number" maxIntegerDigits="15" minFractionDigits="0"/>
</h:inputText>
</a4j:region>
MyBean.valueN爲java.lang.Double的值。
它沒有幫助。 BigDecimal允許我輸入更多的數字(最多19位,而字段限制爲21個符號,其中只有15個符號可以是整數部分),但是它再次以某種奇怪的方式轉換我的號碼。 20「1」被轉換爲111111111110656.所以我決定只檢查最大允許的數字而不是丟掉多餘的數字。這樣它就可以正常工作,而且它看起來更加正確。 :)雖然我仍然不明白爲什麼maxIntegerDigits即使使用BigDecimal也無法正常工作。 – mykola