Di Jawa, pembahagian nilai integer (panjang dalam kes ini) mengikut peraturan aritmetik integer, yang menghasilkan nombor bulat. Apabila membahagi nombor bulat, hasilnya dibundarkan ke arah infiniti negatif. Ini boleh membawa kepada hasil yang tidak dijangka, terutamanya apabila cuba mengira peratusan.
Untuk menangani perkara ini, anda perlu menukar sekurang-kurangnya satu daripada integer input kepada dua kali (nombor titik terapung) sebelum melakukan pembahagian. Ini memaksa pembahagian kepada aritmetik titik terapung, menghasilkan hasil perpuluhan.
double completed = 25000; double total = 50000; double percentage = completed / total; // Prints 0.5 System.out.println(percentage); // Prints 0.5
Dengan menghantar salah satu input kepada dua kali ganda, hasil bahagi menjadi dua kali ganda juga, memberikan nilai peratusan yang dijangkakan.
Adalah penting untuk ambil perhatian bahawa menukar hasil, seperti yang anda cuba pada mulanya (selesai/jumlah), tidak mencukupi. Pembahagian integer telah pun berlaku pada ketika itu. Menukar input memastikan aritmetik titik terapung yang betul digunakan dari awal.
Atas ialah kandungan terperinci Mengapa Pembahagian Integer di Java Menghasilkan Keputusan Tidak Dijangka Apabila Mengira Peratusan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!