Memahami Hasil Pendaraban dan Jenis Data dalam Java
Dalam Java, hasil operasi pendaraban bergantung pada jenis data operan. Ini amat jelas apabila mendarab nilai yang besar, seperti yang digambarkan oleh contoh kod berikut:
long oneYearWithL = 1000 * 60 * 60 * 24 * 365L; long oneYearWithoutL = 1000 * 60 * 60 * 24 * 365; System.out.println(oneYearWithL); // Output: 31536000000 System.out.println(oneYearWithoutL); // Output: 1471228928
Penjelasan:
Memahami Limpahan Integer:
Dalam Java, integer ditandatangani nilai 32-bit, antara -2,147,483,648 hingga 2,147,483,647. Apabila hasil operasi aritmetik melebihi had ini, ia melilit ke bahagian bertentangan julat, menyebabkan limpahan integer.
Dalam contoh kita, hasil darab 1000 60 60 24 365 ialah 2,592,000,000. Memandangkan nilai ini melebihi nilai integer maksimum, nilai ini membungkus kepada -1,702,967,297, iaitu apa yang kita lihat sebagai output (1,471,228,928).
Menukar kepada Jenis Data Panjang:
Untuk mengelakkan limpahan integer, anda dinasihatkan untuk menggunakan jenis data yang panjang untuk pengiraan berangka yang besar. Dengan menyatakan 'L' secara eksplisit selepas nombor, kami boleh memaksa Java untuk menganggap nilai sebagai integer panjang, memastikan bahawa hasilnya disimpan dalam pembolehubah panjang 64-bit.
Amalan Terbaik:
Atas ialah kandungan terperinci Mengapa Pendaraban dalam Java Menghasilkan Keputusan Yang Tidak Dijangka Apabila Berurusan dengan Nombor Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!