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
InformationsquelleAutor abdou amer | 2015-01-05
Schreibe einen Kommentar