Hallo, als Hausaufgabe muss ich ein kleines Programm zur Berechnung der Entfernung von einem Stern zur Erde korrigieren. Dazu gibt es dieses Programm:
public class StarDistance {
public static void main ( String [] args ) {
long d1 = 8000000000000000000L ;
long d12 = 3000000000000000000L ;
long d2 = d1 + d12 ;
System . out . println ( d2 );
}
}
Das als Ausgabe nicht die gewünschte Entfernung 11000000000000000000 kommt ist mir klar, da long soviele nullstellen nicht verarbeiten kann. Allerdings wird in meinem Compiler der Fehler angezeigt, das integer nicht den Wert 8000000000000000000 annehmen kann. Aber warum? 8000000000000000000 ist ja kein int sondern ein long. Kann mir jemand weiterhelfen?
(The literal 8000000000000000000 of type int is out of range; das selbe für 3000000000000000000)
public class StarDistance {
public static void main ( String [] args ) {
long d1 = 8000000000000000000L ;
long d12 = 3000000000000000000L ;
long d2 = d1 + d12 ;
System . out . println ( d2 );
}
}
Das als Ausgabe nicht die gewünschte Entfernung 11000000000000000000 kommt ist mir klar, da long soviele nullstellen nicht verarbeiten kann. Allerdings wird in meinem Compiler der Fehler angezeigt, das integer nicht den Wert 8000000000000000000 annehmen kann. Aber warum? 8000000000000000000 ist ja kein int sondern ein long. Kann mir jemand weiterhelfen?
(The literal 8000000000000000000 of type int is out of range; das selbe für 3000000000000000000)