Rumah >pembangunan bahagian belakang >C++ >Seberapa Tepat Ketepatan Jenis Terapung dalam Pengaturcaraan, Betulkah?
Ketepatan Titik Terapung: Pandangan Lebih Dekat
Salah tanggapan biasa mengenai ketepatan titik terapung, selalunya dinyatakan sebagai nombor tetap digit perpuluhan, adalah tidak tepat. Nombor titik terapung pada asasnya berbeza daripada nombor perpuluhan dalam perwakilan dan aritmetiknya.
Perwakilan Perduaan dan Ketepatan
Nombor titik terapung menggunakan format binari, menggunakan bit dan bukannya digit perpuluhan. Ketepatan ditentukan oleh bilangan bit yang diperuntukkan kepada significand (mantissa), mentakrifkan perubahan nilai terkecil yang boleh diwakili - resolusi. Ketepatan, bagaimanapun, merujuk kepada sejauh mana nilai yang diwakili menghampiri nilai sebenar.
Mencabar Tuntutan 6-9 Digit
Tuntutan MSDN yang sering disebut tentang 6-9 digit ketepatan adalah mengelirukan. Ketepatan titik terapung tidak tetap; ketepatan perwakilan berbeza dengan ketara bergantung pada magnitud dan struktur perpuluhan nombor.
Nombor Magnitud dan Perwakilan
Nombor yang besar, terutamanya yang mudah dinyatakan sebagai kuasa dua, mungkin diwakili dengan tepat. Sebaliknya, nombor yang lebih kecil boleh mengalami ketidaktepatan yang ketara semasa penukaran daripada perpuluhan kepada binari. Contohnya, "999999.97" mungkin dibundarkan kepada "1,000,000" disebabkan oleh pengehadan perwakilan titik terapung.
Asal usul Peraturan Ibu Jari 6-9 Digit
Garis panduan "6-9 digit" berpunca daripada pemerhatian ini:
Pemerhatian ini, bagaimanapun, bukanlah gambaran sebenar ketepatan atau ketepatan yang wujud dalam format titik terapung.
Ringkasnya
Untuk memahami aritmetik titik terapung dengan tepat, seseorang mesti mengakui sifat binarinya dan meninggalkan tanggapan ketepatan perpuluhan tetap. Ketepatan dan ketepatan sebenar sangat bergantung pada nombor tertentu yang terlibat.
Atas ialah kandungan terperinci Seberapa Tepat Ketepatan Jenis Terapung dalam Pengaturcaraan, Betulkah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!