【问题标题】:JFormattedTextField and BigDecimalsJFormattedTextField 和 BigDecimals
【发布时间】:2015-03-24 16:26:47
【问题描述】:
private JFormattedTextField floatingText = new JFormattedTextField();

DecimalFormat df = new DecimalFormat();
NumberFormatter dnff = new NumberFormatter(df);
DefaultFormatterFactory factory = new DefaultFormatterFactory(dnff);
floatingText.setFormatterFactory(factory);

当我输入诸如 1.23 之类的小数字时,它工作得很好,但是当我输入像 9.99999999 这样的 BigDecimals 时,它会将它四舍五入到 10。我该怎么做才能让 Formatter 接受 BigDecimal?

【问题讨论】:

    标签: java jtextfield bigdecimal


    【解决方案1】:

    您可以通过DecimalFormat 上的方法更改要显示的最小和最大数字。所以:

    DecimalFormat df = new DecimalFormat();
    df.setMaximumFractionDigits(20);
    

    还有其他方法可以玩。

    【讨论】:

    • 我把它设为最大值 16,但是当超过最大值时它再次四舍五入我怎样才能让它不接受任何大于 16 位的输入?
    • 啊好吧,这有点棘手。您可以为此使用DocumentFilter。见stackoverflow.com/questions/12793030/…
    猜你喜欢
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2013-04-01
    • 1970-01-01
    相关资源
    最近更新 更多