Heim > Java > javaLernprogramm > Hauptteil

Warum gibt mein Java-Code bei Verwendung von 600851475143 den Fehler „Integer Number Too Large' aus?

Patricia Arquette
Freigeben: 2024-11-07 18:30:03
Original
480 Leute haben es durchsucht

Why Does My Java Code Throw an

Fehlerbehebung „Ganzzahlzahl zu groß“ für 600851475143

Beachten Sie den folgenden Codeausschnitt:

public class Three {
    public static void main(String[] args) {
        Three obj = new Three();
        obj.function(600851475143);
    }

    private Long function(long i) {
        Stack<Long> stack = new Stack<>();

        for (long j = 2; j <= i; j++) {
            if (i % j == 0) {
                stack.push(j);
            }
        }
        return stack.pop();
    }
}
Nach dem Login kopieren

Wann Wenn dieser Code mit dem an die Funktion übergebenen Literal 600851475143 ausgeführt wird, wird der Fehler „Integer Number Too Large“ ausgegeben. Um zu verstehen, warum, müssen wir uns mit den beteiligten Datentypen befassen.

In Java gibt es primitive Datentypen wie int und long, die Zahlen ohne Objekte darstellen.

  • int ist eine 32-Bit-Ganzzahl mit Vorzeichen, was bedeutet, dass sie Ganzzahlen zwischen -2.147.483.648 und 2.147.483.647 darstellen kann.
  • long ist eine 64-Bit-Ganzzahl mit Vorzeichen, die eine Menge angibt breiterer Wertebereich von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807.

Das Problem hierbei ist, dass 600851475143 den durch einen int darstellbaren Maximalwert überschreitet. Um dies zu beheben, müssen wir ein Literal vom Typ long verwenden, indem wir ein „L“-Suffix an die Zahl anhängen: 600851475143L.

obj.function(600851475143L);
Nach dem Login kopieren

Mit dieser Änderung wird der Code ausgeführt, ohne dass der Fehler auftritt, und kehrt zurück der größte Primfaktor von 600851475143L.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Java-Code bei Verwendung von 600851475143 den Fehler „Integer Number Too Large' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage