我使用了一个双变量来保存物品的价格。该变量存储在postgresql数据库中的money类型列下。我使用setbigdecimal(position,value)sql函数。在另一部分中,我使用jspinner作为输入。
Double current = 0.0;
Double min = (double) Integer.MIN_VALUE;
Double max = (double) Integer.MAX_VALUE;
Double step = 0.1;
JSpinner priceSpinner = new JSpinner(new SpinnerNumberModel(current, min, max, step));
当用户单击一个按钮时,我得到用户输入的值,并通过sql查询将其放入数据库。
insertStmt.setBigDecimal(position,BigDecimal.valueOf((double) priceSpinner.getValue()));
但是,我犯了个小错误,
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Double
2条答案
按热度按时间apeeds0o1#
这个程序演示了在双精度和双精度十进制之间的双向转换:
请注意,到double的转换可能并不精确。
h7appiyu2#
很明显
priceSpinner.getValue()
退货BigDecimal
你想把它变成double
然后回到BigDecimal
.你为什么不这么做?