Memahami Ralat Titik Terapung dan Penyelesaiannya
Aritmetik titik terapung menimbulkan cabaran unik kerana sifat anggarannya. Untuk menangani ralat ini dengan berkesan, kita mesti memeriksa puncanya.
Dalam Python, pengiraan titik terapung menggunakan perwakilan binari, yang membawa kepada ketidaktepatan. Seperti yang ditunjukkan dalam coretan kod, percubaan untuk menganggarkan punca kuasa dua sedikit tersasar disebabkan anggaran ini. Contohnya:
<code class="python">def sqrt(num): root = 0.0 while root * root < num: root += 0.01 return root print(sqrt(4)) # Output: 2.0000000000000013 print(sqrt(9)) # Output: 3.00999999999998</code>
Untuk lebih memahami ralat ini, pertimbangkan perwakilan perpuluhan tepat 0.01 menggunakan modul perpuluhan:
<code class="python">from decimal import Decimal print(Decimal(.01)) # Output: Decimal('0.01000000000000000020816681711721685132943093776702880859375')</code>
Rentetan ini mendedahkan bahawa nilai sebenar yang ditambah adalah sedikit lebih besar daripada 1/100. Oleh itu, perwakilan titik terapung bagi nilai perpuluhan memperkenalkan variasi kecil ini.
Untuk mengurangkan ralat ini, beberapa pendekatan wujud:
<code class="python">from decimal import Decimal as D def sqrt(num): root = D(0) while root * root < num: root += D("0.01") return root print(sqrt(4)) # Output: Decimal('2.00') print(sqrt(9)) # Output: Decimal('3.00')</code>
Dengan menggabungkan kaedah ini dan teknik memanfaatkan seperti kaedah Newton, anda boleh mencapai terapung yang sangat tepat- pengiraan mata, mengembangkan pemahaman anda tentang analisis berangka dan mengendalikan aritmetik titik terapung dengan berkesan.
Atas ialah kandungan terperinci Bagaimanakah Kami Boleh Mengendalikan dan Menyelesaikan Ralat Titik Terapung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!