long Fehlermeldung

Wieso schaust Du Dir die Fehlermeldung nicht einfach einmal an. Was besagt die?

"Integer to large" sollte da kommen - der Wert ist also für einen Integer zu groß.

Und dann ist das ja auch logisch: Du hast einen explizite cast zu einem long - die 3000000000 scheint also kein long zu sein. Laut Fehlermeldung ist es ein Integer. Welchen Wertebereich hat ein Integer in Java? Auf jeden Fall kleiner, denn das besagt ja die Fehlermeldung 🙂

Wenn Du ein Long haben willst, dann musst du da nicht casten (int auf long ist ein impliziter cast und müsste nicht angegeben werden).
Und ein long Literal zeichnet sich durch ein angehängtes L aus:
long n = 3000000000L;
 
Wieso schaust Du Dir die Fehlermeldung nicht einfach einmal an. Was besagt die?

"Integer to large" sollte da kommen - der Wert ist also für einen Integer zu groß.

Und dann ist das ja auch logisch: Du hast einen explizite cast zu einem long - die 3000000000 scheint also kein long zu sein. Laut Fehlermeldung ist es ein Integer. Welchen Wertebereich hat ein Integer in Java? Auf jeden Fall kleiner, denn das besagt ja die Fehlermeldung 🙂

Wenn Du ein Long haben willst, dann musst du da nicht casten (int auf long ist ein impliziter cast und müsste nicht angegeben werden).
Und ein long Literal zeichnet sich durch ein angehängtes L aus:
long n = 3000000000L;
Ah soo... Danke für die Schnelle Antwort. Ich habe noch eine frage warum funktioniert dann
int n1 = (int) 3000000000.;
Es muss ja wegen dem Punkt am ende sein aber was genau macht der Punkt?
 
Ergänzend: der explizite Cast auf int ändert natürlich den Wert. Das funktioniert nur, weil der Cast explizit ist. Ohne diesen würdest Du eine Fehlermeldung bekommen, dass die Konvertierung möglicherweise verlustbehaftet ist.
 

Neue Themen


Zurück
Oben