Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengatasi Ralat Titik Terapung Sambil Memelihara Ketepatan dalam Pengiraan?

Bagaimana untuk Mengatasi Ralat Titik Terapung Sambil Memelihara Ketepatan dalam Pengiraan?

Susan Sarandon
Susan Sarandonasal
2024-10-21 14:58:02743semak imbas

How to Overcome Floating Point Errors While Preserving Accuracy in Calculations?

Cara Mengendalikan Ralat Titik Terapung Tanpa Mengorbankan Ketepatan

Apabila bekerja dengan aritmetik titik terapung, anda mungkin menghadapi ralat disebabkan sifat anggaran perwakilannya. Ini boleh menimbulkan cabaran apabila menyasarkan ketepatan yang tinggi dalam pengiraan anda.

Satu pendekatan untuk menangani isu ini ialah memahami batasan perwakilan titik terapung. Dalam Python, titik terapung binari yang digunakan ("kepersisan berganda") biasanya mewakili nilai perpuluhan menggunakan anggaran. Ini bermakna menambah nilai kecil seperti 0.01 adalah tidak tepat dan boleh mengakibatkan ralat yang tidak dijangka, seperti dalam contoh yang diberikan:

<code class="python">def sqrt(num):
    root = 0.0
    while root * root < num:
        root += 0.01
    return root</code>

Untuk mengelakkan ralat sedemikian, anda boleh menggunakan modul perpuluhan Python. Jenis Perpuluhan membolehkan aritmetik perpuluhan yang tepat, memastikan bahawa nilai seperti 0.01 diwakili dengan tepat. Dengan mengubah suai fungsi sqrt untuk menggunakan jenis Perpuluhan, anda boleh menghapuskan ralat pembundaran:

<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</code>

Sebagai alternatif, jika berpegang pada terapung diutamakan, anda boleh menambah pengiraan anda menggunakan nilai yang boleh diwakili dengan tepat sebagai apungan binari. Ini melibatkan penggunaan nilai dalam bentuk I/2**J, seperti 0.125 (1/8) atau 0.0625 (1/16).

Selain itu, menggunakan kaedah Newton untuk mengira punca kuasa dua juga boleh meningkatkan ketepatan apabila berurusan dengan aritmetik titik terapung.

Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Ralat Titik Terapung Sambil Memelihara Ketepatan dalam Pengiraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn