Was hab ich an dieser Java Aufgabe falsch gemacht? Warum ist diese Zahl zu lang für "long" und "int"? Siehe Foto?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Der Compiler erkennt nicht, dass diese Zahl eine long-Zahl sein soll - er geht beim Auswerten von Zuweisungen von rechts nach links vor und kennt bei dieser Zahl die Variable noch nicht, die diese Zahl aufnehmen soll. Warum er allerdings nicht von sich aus erkennt, dass die Zahl nicht in int hineinpasst, und selber ein long draus macht, verstehe ich auch nicht. Vielleicht, um die Programmierer zu erziehen, Zahlkonstante zu kennzeichnen.

In C# ist das Kennzeichen für ein long ein angehängtes L:

123456789012L

In Java ist es ähnlich, vermutlich genauso, aber da bin ich im Moment nicht sicher

Woher ich das weiß:Berufserfahrung – Software-Entwickler

Du musst hinter die Zahl ein großes L schreiben.

Sonst declariert er es als normalen Integer, um speicher zu sparen.

Die zahl 5125637792 wird von Java als 32 Bit Integer wargenommen.

Damit die Zahl als 64 Bit long genommen wird kannst du ein L dahinter schreiben:

long n = 5125637792l;   //oder
long n = 5125637792L;
Woher ich das weiß:Hobby – Grundlegendes Coding Wissen
Nichtsnutz12 
Fragesteller
 11.11.2018, 12:36

tatsächlich vielen dank!

0

Du verwendest das falsche Literal. Hänge ein L an den Wert:

long n = 5125637792L;

PS.: Bitte poste Code künftig editierbar hier oder über Seiten wie pastebin. Das geht für dich schneller und macht es potenziellen Antwortgebern einfacher, dir zu helfen.