Rumah > Java > javaTutorial > teks badan

Mengapa Menjumlahkan Gandaan dalam Java Menghasilkan Nilai Yang Tidak Dijangka?

Linda Hamilton
Lepaskan: 2024-11-10 18:15:02
asal
931 orang telah melayarinya

Why Does Summing Doubles in Java Result in Unexpected Values?

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

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!

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