Ketepatan Berganda: Memahami Ketepatan Lanjutan
Apabila bekerja dengan jenis data ketepatan dua kali, lazimnya difahami bahawa ketepatan anggaran adalah terhad hingga 15 tempat perpuluhan. Walau bagaimanapun, jenis nombor tertentu, seperti 1.0/7.0, mungkin memaparkan ketepatan 17 tempat perpuluhan apabila disimpan secara dalaman sebagai dua kali ganda.
Anomali ini dikaitkan dengan reka bentuk sedia ada perwakilan data berganda IEEE. Nilai ketepatan dua kali mempunyai 53 bit bererti, memberikan kira-kira 15.95 digit perpuluhan ketepatan. Walau bagaimanapun, pustaka C membundarkan nilai ini kepada 15, menghasilkan ketepatan teori sebanyak 15 tempat perpuluhan. Pada hakikatnya, nilai DBL_DIG ditetapkan kepada 15 berbanding 16 disebabkan pembundaran ini.
Kepentingan ketepatan lanjutan ini dihuraikan dengan lebih lanjut menggunakan fungsi nextafter(). Fungsi ini mengira nombor yang boleh diwakili terdekat dengan nilai yang diberikan. Apabila memeriksa nilai 1.0/7.0 menggunakan fungsi ini, output mendedahkan tiga nilai berturut-turut dengan digit terakhir yang berbeza: 0.14285714285714282, 0.14285714285714285 dan 0.142857142857114285714285714282 nilai digit terakhir yang dipaparkan ditentukan oleh operasi pembundaran yang dilakukan oleh pengkompil. Dalam kes ini, digit berubah sebanyak 3 dengan setiap langkah, menunjukkan bahawa ketepatan adalah lebih kurang 16 digit perpuluhan. Oleh itu, sementara ketepatan teori ganda ialah 15 tempat perpuluhan, ketepatan lanjutan hampir 16 digit memberikan ketepatan yang lebih besar untuk jenis pengiraan tertentu.
Atas ialah kandungan terperinci Mengapa Aritmetik Ketepatan Berganda Kadangkala Menunjukkan Lebih Daripada 15 Tempat Ketepatan Perpuluhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!