Intellij long "ganzzahliger Wert ist zu groß", aber im Bereich long.maxvalue

7

Das ist vielleicht eine dumme Sache, aber wie ist das möglich, dass der Compiler dies zeigt, während Long.Max = 9223372036854775807 ?

    
vach 03.02.2015, 17:42
quelle

3 Antworten

13

Sie müssen Long Literale in Java haben, die mit einem L enden. Wenn Sie ein L zu Ihrer Ganzzahl hinzufügen, wird Ihr Problem wie folgt korrigiert: Long s = 9223372036854775806L

Dies liegt daran, dass Java standardmäßig alle Integer als 32-Bit ( int ) interpretiert. Das Suffix L stellt sicher, dass Ihre Ganzzahl als 64-Bit interpretiert wird.

    
HavelTheGreat 03.02.2015, 17:44
quelle
3

setze einfach 'l' oder 'L' am Ende davon und es wird in Ordnung sein, wie:

%Vor%     
roeygol 03.02.2015 17:44
quelle
3

Verwenden Sie Long s = 9223372036854775806L

    
Everv0id 03.02.2015 17:45
quelle