Rumah >Java >javaTutorial >Mengapakah gelung menjumlahkan 0.04 dalam Java menghasilkan ralat pembundaran yang tidak dijangka?
Dalam atur cara Java, gelung menjumlahkan nilai 0.04 kepada dirinya sendiri 25 kali menghasilkan hasil yang tidak dijangka antara lelaran ke-6 dan ke-10. Daripada menambah sebanyak 0.04 seperti yang dijangkakan, jumlah pusingan kepada nilai tidak betul seperti 0.24000000000000002 dan 0.39999999999999997.
Tingkah laku aneh ini disebabkan oleh sifat aritmetik titik terapung. Nilai titik terapung diwakili menggunakan format titik terapung binari, yang tidak boleh mewakili banyak pecahan perpuluhan dengan tepat. Sebaliknya, mereka menyimpan nilai sebagai jumlah kuasa negatif dua.
Sebagai contoh, 0.5 boleh diwakili tepat sebagai 2^-1, dan 0.125 sebagai 2^-3. Walau bagaimanapun, nilai perpuluhan 0.96 tidak boleh diwakili dengan tepat sebagai jumlah kuasa negatif dua, mengakibatkan ralat pembundaran sedikit apabila disimpan dalam pembolehubah titik terapung.
Apabila melakukan operasi aritmetik pada nilai titik terapung, ralat pembundaran ini boleh terkumpul, menyebabkan jumlah menyimpang daripada nilai yang dijangkakan. Inilah sebabnya mengapa jumlah 25 lelaran 0.04 tidak kekal sebagai gandaan integer tepat 0.04.
Atas ialah kandungan terperinci Mengapakah gelung menjumlahkan 0.04 dalam Java menghasilkan ralat pembundaran yang tidak dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!