Können nicht nur die Doppelte Anzahl in BigDecimal-Variablen
Ich bin mit einem Double-Variablen, die hält den Artikelpreis. Die variable gespeichert ist, werden in einer postgresql-Datenbank in einer Spalte von Geld geben. Ich benutze setBigDecimal(position,value) SQL-Funktion.In den anderen Teil, ich verwende einen JSpinner als Eingabe.
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));
Wenn der Benutzer klickt auf eine Schaltfläche, erhalte ich den Wert entred durch den Benutzer, und legen Sie es in der Datenbank via SQL-Abfrage.
insertStmt.setBigDecimal(position,BigDecimal.valueOf((double) priceSpinner.getValue()));
Aber, ich habe diese kleinen Fehler,
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Double
- JSpinner.getValue() gibt ein Objekt zurück, das Sie versuchen, in "Double" umgewandelt (Was nicht möglich zu sein scheint, als es die aktuelle Klasse BigDecimal) als Sie erfordern BigDecimal, versuchen setBigDecimal(position,(BigDecimal) priceSpinner.getValue());
- Kannst du die full - stack-trace- die Zeile in Ihrem code verursacht tatsächlich die Ausnahme?
- Wichtiger Hinweis: versuchen Sie nicht, zu instanziieren BigDecimal-Objekte mit einem double parameter. Immer übergeben wird ein String-argument. Es gibt ein gutes Stück auf diesem, aber ich kann nicht finden den link für das Leben von mir.
- wenn die priceSpinner nicht gefüllt ist (Standardwert ist null) bekam ich diese Fehlermeldung Exception in thread "AWT-EventQueue-0" java.lang.Classcastexception-Fehler: java.math.BigDecimal nicht cast auf java.lang.Doppel
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses Programm zeigt die Konvertierung in beiden Richtungen zwischen Double und BigDecimal:
Beachten Sie, dass die Konvertierung nach Double nicht genau.
Offensichtlich
priceSpinner.getValue()
zurückBigDecimal
und Sie versuchen, es zu konvertieren, umdouble
und dann zurück zuBigDecimal
.Warum gehst du nicht einfach tun?