Rumah  >  Artikel  >  Java  >  Mengapa Kod Java Saya Membuang Ralat "Nombor Integer Terlalu Besar" Apabila Menggunakan 600851475143?

Mengapa Kod Java Saya Membuang Ralat "Nombor Integer Terlalu Besar" Apabila Menggunakan 600851475143?

Patricia Arquette
Patricia Arquetteasal
2024-11-07 18:30:03412semak imbas

Why Does My Java Code Throw an

Selesaikan masalah "Nombor Integer Terlalu Besar" Ralat untuk 600851475143

Pertimbangkan coretan kod berikut:

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();
    }
}
Apabila>Di Java, terdapat jenis data primitif, seperti int dan long, yang mewakili nombor tanpa objek.

  • int ialah integer bertanda 32-bit, bermakna ia boleh mewakili integer antara -2,147,483,648 dan 2,147,483,647.
  • panjang ialah integer bertanda 64-bit, memberikan julat nilai yang lebih luas daripada -9,223,372,036,854,775,808 hingga 9,223,372,036,854,775,807.
Isu di sini ialah 600851475143 melebihi nilai maksimum yang boleh diwakili oleh int. Untuk membetulkannya, kita perlu menggunakan literal jenis panjang dengan menambahkan akhiran "L" pada nombor: 600851475143L.

obj.function(600851475143L);
Dengan pengubahsuaian ini, kod akan berjalan tanpa menghadapi ralat dan akan kembali faktor perdana terbesar 600851475143L.

Atas ialah kandungan terperinci Mengapa Kod Java Saya Membuang Ralat "Nombor Integer Terlalu Besar" Apabila Menggunakan 600851475143?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn