Di Java, kesilapan langkah biasa timbul apabila mencuba operasi pembahagian mudah. Senario seperti ini, di mana pengiraan berasaskan integer tiba-tiba goyah, boleh dikaitkan dengan sifat pembahagian integer.
Apabila integer dibahagikan, hasilnya ialah integer, memotong mana-mana bahagian pecahan. Had ini boleh diperhatikan dalam kod Java berikut:
float res = quantity / standard;
Walaupun pembolehubah res diisytiharkan sebagai apungan, pembahagian dua integer menghasilkan keputusan integer. Percanggahan ini boleh membawa kepada ralat ketepatan yang tidak dijangka.
Untuk membetulkan isu ini, pertimbangkan secara eksplisit menghantar pengangka sebagai apungan sebelum pembahagian:
float res = (float) quantity / standard;
Dengan memaksa pengangka dianggap sebagai terapung, penyebut juga dinaikkan kepada terapung. Ini memastikan pembahagian berasaskan apungan dilakukan, mengekalkan bahagian pecahan hasil dalam res.
Sebagai alternatif, jika anda berurusan dengan literal, anda boleh menambah akhiran "f" pada penyebut:
float f = 6800f / 500;
Pengubahsuaian ini mencapai tujuan yang sama seperti pelakon eksplisit, menghantar penyebut terapung untuk memastikan pelaksanaan operasi pembahagian berasaskan apungan.
Atas ialah kandungan terperinci Mengapa Pembahagian Integer dalam Java Memotong Pecahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!