InputNumber formats input fields with numeric Strings. It supports currency symbols, minimum and maximum value, negative numbers, and a lot of round methods.
Documentation<h:form> <p:panelGrid class="ui-noborder"> <f:facet name="header"> <p:row> <p:column style="font-weight: bold;">inputNumber</p:column> <p:column style="font-weight: bold;">Numeric Value</p:column> <p:column style="font-weight: bold;">Description</p:column> </p:row> </f:facet> <p:row> <p:column> <p:inputNumber id="input1" value="#{inputNumberView.input1}"> <p:ajax update="output1" /> </p:inputNumber> </p:column> <p:column> <p:inputText id="output1" disabled="true" value="#{inputNumberView.input1}"/> </p:column> <p:column> Without configuration </p:column> </p:row> <p:row> <p:column> <p:inputNumber id="input2" value="#{inputNumberView.input2}" symbol=" CHF" symbolPosition="s" decimalSeparator="," thousandSeparator="."> <p:ajax update="output2" /> </p:inputNumber> </p:column> <p:column> <p:inputText id="output2" disabled="true" value="#{inputNumberView.input2}"/> </p:column> <p:column> Suffix currency symbol and comma for decimal separator </p:column> </p:row> <p:row> <p:column> <p:inputNumber id="input3" value="#{inputNumberView.input3}" minValue="-1000.999" maxValue="1000" decimalPlaces="3"> <p:ajax update="output3" /> </p:inputNumber> </p:column> <p:column> <p:inputText id="output3" disabled="true" value="#{inputNumberView.input3}"/> </p:column> <p:column> Maximum and minimum values (-1000.999 to 1000.000) </p:column> </p:row> <p:row> <p:column> <p:inputNumber id="input4" value="#{inputNumberView.input4}" decimalPlaces="6"> <p:ajax update="output4" /> </p:inputNumber> </p:column> <p:column> <p:inputText id="output4" disabled="true" value="#{inputNumberView.input4}"/> </p:column> <p:column> Custom decimal places </p:column> </p:row> <p:row> <p:column> <p:inputNumber id="input5" value="#{inputNumberView.input5}" symbol="%" symbolPosition="s" required="true" emptyValue="empty"> <p:ajax update="output5" /> </p:inputNumber> </p:column> <p:column> <p:inputText id="output5" disabled="true" value="#{inputNumberView.input5}"/> </p:column> <p:column> Empty value (empty) and required </p:column> </p:row> <p:row> <p:column> <p:inputNumber id="input6" value="#{inputNumberView.input6}" symbol="%" symbolPosition="s" emptyValue="zero"> <p:ajax update="output6" /> </p:inputNumber> </p:column> <p:column> <p:inputText id="output6" disabled="true" value="#{inputNumberView.input6}"/> </p:column> <p:column> Empty value (zero) </p:column> </p:row> <p:row> <p:column> <p:inputNumber id="Input7" value="#{inputNumberView.input7}" symbol="%" symbolPosition="s" emptyValue="always"> <p:ajax update="output7" /> </p:inputNumber> </p:column> <p:column> <p:inputText id="output7" disabled="true" value="#{inputNumberView.input7}"/> </p:column> <p:column> Empty value (symbol is always displayed) </p:column> </p:row> <p:row> <p:column> <p:inputNumber id="Input8" value="#{inputNumberView.input8}" decimalPlaces="15"> <p:ajax update="output8" /> </p:inputNumber> </p:column> <p:column> <p:inputText id="output8" disabled="true" value="#{inputNumberView.input8}"/> </p:column> <p:column> 15 Decimals using BigDecimal </p:column> </p:row> </p:panelGrid> </h:form>
@Named @ViewScoped public class InputNumberView implements Serializable { private Double input1 = new Double(0); private Double input2 = new Double(0); private Double input3 = new Double(0); private Double input4 = new Double(0); private Double input5 = new Double(0); private Double input6 = new Double(0); private Double input7 = null; private BigDecimal input8 = new BigDecimal(0); public InputNumberView() { input1 = 0d; input2 = 0d; input3 = 0d; input4 = 0d; input5 = 251.31; input6 = 60d; input8 = new BigDecimal("1234.000000001"); } public Double getInput1() { return input1; } public void setInput1(Double input1) { this.input1 = input1; } public Double getInput2() { return input2; } public void setInput2(Double input2) { this.input2 = input2; } public Double getInput3() { return input3; } public void setInput3(Double input3) { this.input3 = input3; } public Double getInput4() { return input4; } public void setInput4(Double input4) { this.input4 = input4; } public Double getInput5() { return input5; } public void setInput5(Double input5) { this.input5 = input5; } public Double getInput6() { return input6; } public void setInput6(Double input6) { this.input6 = input6; } public Double getInput7() { return input7; } public void setInput7(Double input7) { this.input7 = input7; } public BigDecimal getInput8() { return input8; } public void setInput8(BigDecimal input8) { this.input8 = input8; } }