I'm using a Double variable which holds the Item price. That variable is stored in postgresql database under a column of money type. I use setBigDecimal(position,value) SQL function.In other part, i'm using a JSpinner as input.
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));
When the user clicks on a button, I get the value entred by the user and put it in the database via SQL query.
insertStmt.setBigDecimal(position,BigDecimal.valueOf((double) priceSpinner.getValue()));
But, i got this little error,
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Double
This program illustrates conversion in both directions between Double and BigDecimal:
Note that the conversion to Double may not be exact.
Obviously
priceSpinner.getValue()
returnsBigDecimal
and you're trying to convert it todouble
and then back toBigDecimal
.Why don't you just do?