0
private JFormattedTextField getCurrencyJFormattedTextField() {
    NumberFormat format= NumberFormat.getNumberInstance();
    format.setMaximumFractionDigits(4);    
    NumberFormatter formatter= new NumberFormatter(format);
    formatter.setMinimum(0.0);
    formatter.setValueClass(Double.class);
    JFormattedTextField formattedTextField = new JFormattedTextField(formatter);
    return formattedTextField;
}

所以,如果我明确键入“1.23456789”

JFormattedTextField 的 UI 将显示“1.2346”

但是,当 call 时getValue,返回的值是1.23456789,而不是1.23461

final double price = (Double)jFormattedTextField.getValue();

有什么方法可以WYSIWYG吗?让底层数据结构与UI显示一致?

4

1 回答 1

1

你必须使用BigDecimal你的数据类型。它是专门为任意精度的有符号十进制数创建的。

于 2013-08-12T02:25:40.520 回答