Aritmetik Titik Terapung dalam .NET: Memahami Ketaktepatan
Persoalan biasa mengenai aritmetik titik terapung .NET ialah sama ada ia sememangnya cacat. Keraguan ini selalunya timbul daripada keputusan yang tidak dijangka seperti berikut:
<code>double i = 10 * 0.69;</code>
Pendaraban mudah ini menghasilkan 6.8999999999999995
, hasil yang menyimpang daripada jangkaan 6.9
. Percanggahan ini bukanlah kecacatan dalam .NET itu sendiri, sebaliknya akibat daripada cara nombor titik terapung diwakili dan diproses.
Nombor titik terapung disimpan sebagai anggaran dalam format binari. Walaupun integer boleh diwakili dengan tepat, banyak nombor perpuluhan (seperti 0.69) tidak mempunyai persamaan binari yang tepat. Had yang wujud ini membawa kepada ralat pembundaran kecil semasa pengiraan. Situasi ini serupa dengan ketidakupayaan untuk mewakili 1/3 dengan tepat sebagai perpuluhan terhingga (0.333...).
Ketidaktepatan yang kelihatan kecil dalam contoh di atas menyerlahkan pengehadan perwakilan titik terapung. Untuk pemahaman yang lebih mendalam tentang prinsip asas, penerokaan lanjut mengenai perwakilan titik terapung binari dan had yang wujud adalah disyorkan.
Atas ialah kandungan terperinci Adakah Pendaraban Titik Terapung Tepat dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!