用
toPlainString()
BigDecimal d = new BigDecimal("600.0").setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();System.out.println(d.toPlainString()); // Printed 600 for me我还没有进入JSF,但转换器可能看起来像这样:
@FacesConverter("bigDecimalPlainDisplay")public class BigDecimalDisplayConverter implements Converter { @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { throw new BigDecimal(value); } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { BigDecimal bd = (BigDecimal)value; return bd.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString(); }}然后在xhtml中:
<h:inputText id="bigDecimalView" value="#{bigDecimalObject}" size="20" required="true" label="Value"> <f:converter converterId="bigDecimalPlainDisplay" /></h:inputText>


