Wie behebe ich einen Fehler beim Hinzufügen von Ganzzahlen in Java?

8

Im gegebenen Beispiel:

%Vor%

gibt zurück: c= -1183744630 , warum?

Wie behebt man das?

    
Registered User 14.02.2010, 14:45
quelle

5 Antworten

11

Ihre Ganzzahl ist überfüllt. Eine Ganzzahl hat einen maximalen Wert von Integer.MAX_VALUE (2 ^ 31 - 1). Wenn der Wert größer wird, hat Ihre Variable nicht mehr den richtigen Wert.

Eine lange hat eine größere Reichweite.

%Vor%     
Scharrels 14.02.2010, 14:48
quelle
9

Der MAX_VALUE eines Java-Longs ist 9223372036854775807, also funktioniert Scharrels Lösung für Ihr Beispiel.

Hier ist eine andere Lösung, die noch höher gehen kann, sollten Sie sie brauchen.

%Vor%

Dieser Ansatz ist nur durch den JVM-Speicher begrenzt.

    
Drew Wills 14.02.2010 14:54
quelle
4
%Vor%     
fastcodejava 14.02.2010 17:37
quelle
2

Der maximale Wert eines int in Java ist 2.147.483.647. Wenn Sie etwas über diesen Wert berechnen möchten, müssen Sie den Typ long verwenden.

    
Desintegr 14.02.2010 14:52
quelle
1

Java Datatypes

  

Der int-Datentyp ist eine vorzeichenbehaftete 32-Bit-Zweierkomplement-Ganzzahl. Es hat einen Mindestwert von -2.147.483.648 und einen Höchstwert von 2.147.483.647

    
Tommy 14.02.2010 14:52
quelle

Tags und Links