Masalah Ketepatan dengan Pengiraan Berganda Java: Kajian Kes
Cabaran timbul apabila berurusan dengan aritmetik titik terapung berketepatan dua di Jawa. Seperti yang digambarkan dalam coretan kod, penolakan nilai bulat boleh membawa kepada hasil yang tidak dijangka disebabkan oleh pengehadan ketepatan yang wujud.
Khususnya, isu ini berpunca daripada rangkaian pengiraan:
Dalam kes ini, kod akan diubah suai sebagai berikut:
Dengan BigDecimal, hasilnya dikira dengan tepat dan dipaparkan:
import java.math.BigDecimal; BigDecimal premium = BigDecimal.valueOf("1586.6"); BigDecimal netToCompany = BigDecimal.valueOf("708.75"); BigDecimal commission = premium.subtract(netToCompany); System.out.println(commission + " = " + premium + " - " + netToCompany);
877.85 = 1586.6 - 708.75
Atas ialah kandungan terperinci Mengapa Jenis `double` Java Menghasilkan Keputusan Tidak Tepat dalam Pengiraan Kewangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!