JFormattedTextField 和 BigDecimals
JFormattedTextField and BigDecimals
private JFormattedTextField floatingText = new JFormattedTextField();
DecimalFormat df = new DecimalFormat();
NumberFormatter dnff = new NumberFormatter(df);
DefaultFormatterFactory factory = new DefaultFormatterFactory(dnff);
floatingText.setFormatterFactory(factory);
当我输入小数字(如 1.23)时,它工作得很好,但当我输入 BigDecimals(如 9.99999999)时,它会四舍五入为 10。我该怎么做才能让 Formatter 接受 BigDecimal?
您可以通过 DecimalFormat
上的方法更改要显示的最小和最大数字。所以:
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(20);
还有其他方法可以尝试。
private JFormattedTextField floatingText = new JFormattedTextField();
DecimalFormat df = new DecimalFormat();
NumberFormatter dnff = new NumberFormatter(df);
DefaultFormatterFactory factory = new DefaultFormatterFactory(dnff);
floatingText.setFormatterFactory(factory);
当我输入小数字(如 1.23)时,它工作得很好,但当我输入 BigDecimals(如 9.99999999)时,它会四舍五入为 10。我该怎么做才能让 Formatter 接受 BigDecimal?
您可以通过 DecimalFormat
上的方法更改要显示的最小和最大数字。所以:
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(20);
还有其他方法可以尝试。