[英]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.