Rumah > Java > javaTutorial > 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
Lepaskan: 2024-11-07 18:30:03
asal
491 orang telah melayarinya

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();
    }
}
Salin selepas log masuk
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);
Salin selepas log masuk
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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan