Rumah > Java > javaTutorial > Mengapa Pembahagian Integer di Java Menghasilkan Keputusan Tidak Dijangka Apabila Mengira Peratusan?

Mengapa Pembahagian Integer di Java Menghasilkan Keputusan Tidak Dijangka Apabila Mengira Peratusan?

DDD
Lepaskan: 2025-01-02 18:35:37
asal
173 orang telah melayarinya

Why Does Integer Division in Java Produce Unexpected Results When Calculating Percentages?

Memahami Pembahagian Integer dalam Java

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
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan