InputNumber formats input fields with numeric Strings. It supports currency symbols, minimum and maximum value, negative numbers, and a lot of round methods.
<div class="card">
<h:form>
<div class="p-fluid formgrid grid">
<div class="field col-12 md:col-4">
<p:outputLabel for="input1" value="No Configuration"/>
<p:inputNumber id="input1" value="#{inputNumberView.input1}" modifyValueOnWheel="false" />
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="input2" value="Currency"/>
<p:inputNumber id="input2" value="#{inputNumberView.input2}" symbol=" CHF"
symbolPosition="s" decimalSeparator="," thousandSeparator="." />
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="input3" value="Min-Max"/>
<p:inputNumber id="input3" value="#{inputNumberView.input3}" minValue="-1000.999"
maxValue="1000" decimalPlaces="3" />
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="input4" value="Custom Decimals"/>
<p:inputNumber id="input4" value="#{inputNumberView.input4}" decimalPlaces="6" />
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="input5" value="Empty Display - Blank"/>
<p:inputNumber id="input5" value="#{inputNumberView.input5}" symbol="%"
symbolPosition="s" required="true" emptyValue="empty" />
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="input6" value="Empty Display - Zero"/>
<p:inputNumber id="input6" value="#{inputNumberView.input6}" symbol="%"
symbolPosition="s" emptyValue="zero" />
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="input7" value="Empty Display - Symbol"/>
<p:inputNumber id="input7" value="#{inputNumberView.input7}" symbol="%"
symbolPosition="s" emptyValue="always" />
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="input8" value="Big Decimal"/>
<p:inputNumber id="input8" value="#{inputNumberView.input8}" decimalPlaces="15" />
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="input9" value="Positive"/>
<p:inputNumber id="input9" value="#{inputNumberView.input9}" minValue="1" decimalPlaces="0" />
</div>
</div>
</h:form>
</div>