# int-Wert in double-Wert umwandeln



## mattrock (13. Okt 2010)

Hi habe folgendes Problem:

Der Quellcode soll einen double Wert per Typumwandlung ausgeben. Wie stelle ich das an? 

public class Wandlung {
    public static void main (String [] args) { 
        int x ;
        x =  1234.56 / 348.4; 

        System.out.println(y);		


    }
}


----------



## faetzminator (13. Okt 2010)

[c]double x;[/c]?


----------



## a.pst (13. Okt 2010)

mattrock hat gesagt.:


> Hi habe folgendes Problem:
> 
> Der Quellcode soll einen double Wert per Typumwandlung ausgeben. Wie stelle ich das an?
> 
> ...


beschwert sich da nicht der compiler? a'la int in double casten?
java "wählt" immer den genaueren typ, in dem fall double.
also mach hald aus int x; ein double x;


----------



## Atze (13. Okt 2010)

wo kommt denn y her?


----------



## mattrock (13. Okt 2010)

Also im obigen Quelltext beschwert sich der Compiler.

Nun ist die Aufgabe den Quelltext per Typumwandlung (type cast) so zu verändern das der Compiler das ganze korrekt übersetzt.

Ich würde jetzt ja einfach folgenden Code schreiben. Aber ist dies auch eine Typumwandlung?

public class Typumwandlung1 {
    public static void main (String [] args) { 
        int x ;
        double y = (double) 5.4*4.3; 

        System.out.println(y);		


    }
}


----------



## Atze (13. Okt 2010)

da wird nichts umgewandelt, weil es von anfang an doubles sind, das casten kann man sich da sparen. ints sind nur ganzzahlen.


----------



## mattrock (13. Okt 2010)

Aber wie könnte man einen int wert in einen double casten??


----------



## mattrock (13. Okt 2010)

Ich weiß das int Ganzzahlen sind.
Nun ist aber die Aufgabe die Rechnung  int x = 5.4*4.3 (wo vorher vom Compiler eine Fehlermeldung kam) jetzt expilzit mit der Typumwandlung (cast) so zu verändern, dass der Compiler ein richtiges Ergebnis ausgibt. 
Ich würde jetzt einfach das int durch ein double ersetzen und fertig. Aber dies ist doch keine explizite Typumwandlung, oder?


----------



## energy47 (13. Okt 2010)

int x;
double d;
d = (double)x;  || d = xd || d = xD || d = x.  usw..


sorry das geht natürlich nur wenn ein Integer als zahl und nicht als variable da steht.. also stat x irgend eine zahl..


----------



## energy47 (13. Okt 2010)

bei deiner aufgabe findet keine typumwandlung statt sondern ehe ein genauigkeits verlust.. der so ehe nicht funktioniert..
int x

x = 5.4  dass alleine ist schon eine zuweisung von double in ein int  und das funktioniert nicht.. da hilft nur cast 
also 
x = (int)5.4
das ergebnis ist dann x = 5
umgekehrt geht das implizit  ... wenn du also ein int hast und aus welchen grund auch immer dass zum double wird ist es kein problem.. es wird implizit zum double


du willst also aus int double machen..  wenn ich mir deine aufgabe so ansehe fällt mir da nur eines dazu ein
int x = 5, y = 2;
double d = (double)x/y;  // was passiert hier.. x wird zum double und wird durch y geteilt, also wird der gesammte ausdruck zum double, das ergebnis sollte richtig sein..


----------



## mattrock (13. Okt 2010)

Ich hätte es für die explizite Typumwandlung jetzt so geschrieben:

public class Typumwandlung1 {
    public static void main (String [] args) { 
        int x;
        double d = 5.4*4.3 ;
        x = (int) d ;

        System.out.println(x);		


    }
}


----------



## energy47 (13. Okt 2010)

ja das ist richtig...  das ist ein expliziter down cast


----------

