Gelagat Titik Terapung Pelik dalam Program Java
Dalam soalan ini, pengguna menghadapi gelagat pelik semasa menjumlahkan nilai berganda dalam tatasusunan. Secara khusus, hasilnya secara beransur-ansur menyimpang daripada jumlah yang dijangkakan. Fenomena ini boleh dikaitkan dengan cara nilai titik terapung diwakili dalam sistem digital.
IEEE perseorangan dan beregu, perwakilan titik terapung yang paling lazim dalam bahasa pengaturcaraan, menggunakan storan binari dan bukannya storan perpuluhan. Akibatnya, hanya pecahan perpuluhan tertentu boleh diwakili dengan tepat dalam bentuk binari. Pecahan ini terhad kepada nilai yang boleh dinyatakan sebagai jumlah kuasa negatif dua, seperti:
0.5 (2^-1) 0.125 (2^-3) 0.625 (2^-1 + 2^-3)
Pecahan yang tidak boleh diwakili sebagai hasil tambah kuasa negatif dua, seperti 0.96, mengandungi ralat yang wujud dalam perwakilan binari mereka. Apabila pecahan ini dipaparkan sebagai nilai perpuluhan dengan ketepatan lengkap, ia tidak sepadan dengan nilai asal kerana anggaran yang tidak dapat dielakkan ini.
Atas ialah kandungan terperinci Mengapa Menjumlahkan Gandaan dalam Java Menghasilkan Nilai Yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!