# Typumwandlung Object in double



## Patterchen (17. Nov 2005)

Hallo ,

ich habe ein Problem mit der Typumwandlung in double.
Der Vector übergibt ein Object und ich brauche aber für die Funktion setBetrag ein double.
Wie kann ich das umwandeln. Hab schon ein paar sachen probiert, geht aber nicht:


```
case betrag_COL: tabueber.setBetrag((double)value); break;
```
Ich bekomme immer folgende Fehlermeldung:
Cannot cast from object to double
The method setBetrag(double) in the type Tabellenuebergabe is not applicable to the arguments (String)



Die Funktion setBetrag:

```
public void setBetrag(double Betrag)
	{
		m_Betrag = Betrag;
	}
```



Kann mir jemand sagen wie ich den Typ wandeln kann. Casten, parsen, neu zuwesen........ ???:L  :bahnhof: 

Patterchen


----------



## PoiSoN (17. Nov 2005)

Hallo,

umwandeln kannst du mit Double.parseDouble(deinWert);


----------



## Sky (18. Nov 2005)

Was steht denn in dem Object drin ? 

Ein String ?

```
Double.parseDouble((String)value);
```


Ein Double ?

```
((Double)value).doubleValue()
```


Oder was ganz anderes ?


----------



## Patterchen (18. Nov 2005)

Die Variable ist ein Object.
Die Fehlermeldung lautet auch: Cannot cast from Object to double


----------



## Oni (18. Nov 2005)

Sky hat gesagt.:
			
		

> Was steht denn in dem Object drin ?



ist es den überhaupt möglich das objekt zu konvertieren? 

vielleicht wäre ja eine lösung, wenn du eine getter-methode einbaust? wie ist den der aufbau der klasse von dem objekt?


----------



## Sky (18. Nov 2005)

Patterchen hat gesagt.:
			
		

> Die Variable ist ein Object.
> Die Fehlermeldung lautet auch: Cannot cast from Object to double



Soweit habe ich das schon gelesen ! Wenn es sich um ein Object handelt, so wäre es nicht möglich dies in ein Double zu casten! 
Kann auch sein, dass Du da was verwechselst ? Ein Vector bspw. gibt ein Object zurück, auch wenn ein String oder ein Double drin steht.

Zeig doch mal, wie der Vector gefüllt wird.


----------



## Patterchen (18. Nov 2005)

Der Vector wird so befüllt:



```
public DB
{
.............
            Vector v = new Vector();
             
             
             
             
             while ( rs1.next() )
            	 {
                    	 
                v.addElement(rs1.getString(1));
                v.addElement(rs1.getString(2));
                v.addElement(String.valueOf(rs1.getDouble(3)));
                v.addElement(rs1.getString(4));
                v.addElement(rs1.getString(5));
.............
return v;
}
```


----------



## bygones (18. Nov 2005)

dann wurde ja schon gezeigt, wie du ein Element in ein double umwandelst....


----------



## Patterchen (18. Nov 2005)

mhhh, aber hier hab ich ein double in einen String gewandelt. Andersrum hab ich es auch versucht , ging aber nicht.


----------



## bygones (18. Nov 2005)

Patterchen hat gesagt.:
			
		

> mhhh, aber hier hab ich ein double in einen String gewandelt. Andersrum hab ich es auch versucht , ging aber nicht.


double -> String:

```
String.valueOf(1.0);
```

String -> double

```
Double.parseDouble("1.0");
```


----------



## Patterchen (18. Nov 2005)

Das hab ich auch schon versucht(mehrmals!) und es tut nicht!


----------



## L-ectron-X (18. Nov 2005)

Dann arbeitest du vielleicht mit einer Steinzeit-Version von Java?
Da hat man noch so geparst:

```
double d = Double.valueOf("1.25").doubleValue(); //bis Java 1.2
```
Funktioniert aber heute auch noch.

Poste mal deine Fehlermeldung, ohne die kann dir keiner helfen.

Edit:

```
double d = Double.parseDouble((String)v.get(index));
```
Holt ein String-Objekt an Position _index_ aus dem Vector und parst es in einen double-Wert.

```
String s = ((Double)v.get(index)).toString();
```
Holt ein Double-Objekt an Position _index_ aus dem Vector und parst es in einen String.


----------



## Gast (18. Nov 2005)

@ l-ECTRON-X
Hattest recht! Auf meinem anderen PC hat alles wunderbar getan. Tja da sollte man vorher mal auf die Version schauen. 
Thx


----------

