Es scheint, dass wenn Sie eine Zahl in Java eingeben, der Compiler automatisch liest es als eine Ganzzahl, weshalb, wenn Sie (lang) 6000000000 eingeben (nicht in der ganzen Zahl) beschweren, dass 6000000000 keine ganze Zahl ist. Um dies zu korrigieren, musste ich 6000000000L angeben. Ich habe gerade über diese Spezifikation erfahren.Java-L-Nummer (lang) Spezifikation
Gibt es andere Zahlenangaben wie kurz, byte, float, double? Es scheint, als wären diese gut, denn (ich nehme an) wenn du angeben könntest, dass die Zahl, die du eingibst, eine kurze ist, dann müsste Java sie nicht werfen - das ist eine Annahme, korrigiere mich, wenn ich falsch liege . Ich würde normalerweise diese Frage selbst suchen, aber ich weiß nicht, wie diese Art von Nummernspezifikation überhaupt genannt wird.
Spät Eintrag: potentielle Quellen von Mehrdeutigkeit zu entfernen, ist immer gut, und * Ich bin nicht einverstanden nicht * ... aber ich glaube, wenn Sie sich verwirrend '1' mit 'l' und '0' mit' O' (und so weiter), Ihre * Priorität * ist, die Schriftart richtig einzustellen (wenn Sie können), dann sorgen Sie sich um sicherzustellen, dass Sie die Umschalttaste nicht verpassen. – davidcesarino
@SimonNickerson Ich habe eine Frage zu Suffixen ... Wenn ich eine _long_ oder eine _double_ Variable deklariere wie: 'long _lo = 30;' und nicht '30L' bedeutet das, dass meine Variable in _float_ umgewandelt wird? Oder im Falle von '_lo = _lo + 2.77' wird' _lo' in _float_ geworfen, obwohl es als _long_ – luigi7up
Nein erklärt wurde, sind Floats hier nicht beteiligt. Im ersten Fall ist "30" ein "int", das automatisch über eine Erweiterungskonvertierung in eine "lange" umgewandelt wird.Im zweiten Fall ist Ihre Aussage illegal. Sie müssten die rechte Seite explizit zu lange z. '_lo = (lang) (_lo + 2.77)' –