簡體   English   中英

限制JFormattedTextField的小數位數(UI外觀和數據結構)

[英]Limit number of decimal places of JFormattedTextField (Both UI appearance and data structure)

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的用戶界面將顯示“ 1.2346”

然而,打電話的時候getValue ,返回的值是1.23456789 ,而不是1.23461

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

有什么辦法可以實現所見即所得的? 這樣底層數據結構將與UI顯示保持一致?

您必須使用BigDecimal作為數據類型。 它是專為任意精度的帶符號十進制數字創建的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM