Rumah >Java >javaTutorial >Mengapa Jenis `double` Java Menghasilkan Keputusan Tidak Tepat dalam Pengiraan Kewangan?
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);Kesimpulan
877.85 = 1586.6 - 708.75Apabila berurusan dengan ketepatan-sensitif pengiraan di Jawa, adalah penting untuk memanfaatkan BigDecimal untuk mengelakkan perangkap titik terapung aritmetik. Dengan menerima keupayaan ketepatan sewenang-wenangnya, pembangun boleh memastikan hasil yang tepat dan boleh dipercayai, walaupun dalam senario kompleks seperti yang diterangkan di atas.
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!