Rumah >pembangunan bahagian belakang >C++ >Terapung vs. Berganda: Bilakah Anda Harus Memilih Ketepatan Berganda untuk Pengiraan Tepat?
Memahami Perbezaan Antara Jenis Data Terapung dan Berganda
Walaupun "terapung" dan "berganda" mungkin kelihatan boleh ditukar ganti dalam senario tertentu, mereka mempunyai perbezaan asas yang ketara yang boleh memberi kesan kepada ketepatan dan kebolehpercayaan pengiraan.
Ketepatan dan Ketepatan
Seperti yang dicadangkan oleh nama mereka, "double" menawarkan dua kali ganda ketepatan "terapung." Ketepatan berganda menyimpan 15 digit perpuluhan, manakala apungan menyimpan 7. Perbezaan ketepatan ini mempunyai implikasi penting untuk operasi yang melibatkan pengiraan berulang atau pengendalian nombor yang sangat besar atau kecil.
Contoh:
float a = 1.f / 81; float b = 0; for (int i = 0; i < 729; ++ i) b += a; printf("%.7g\n", b); // prints 9.000023
Dalam contoh ini, penggunaan "float" mengakibatkan ralat pemotongan semasa menjumlahkan 1/81 untuk 729 lelaran. Walau bagaimanapun, menggunakan "double":
double a = 1.0 / 81; double b = 0; for (int i = 0; i < 729; ++ i) b += a; printf("%.15g\n", b); // prints 8.99999999999996
menunjukkan ketepatan unggul ganda, yang menghasilkan hasil yang lebih tepat.
Julat dan Had
Nilai maksimum yang boleh diwakili oleh "float" ialah lebih kurang 3e38, manakala "double" boleh menyimpan nilai sehingga 1.7e308. Perbezaan ini bermakna bahawa menggunakan "float" meningkatkan kemungkinan menghadapi nilai "infiniti" apabila melakukan operasi dengan nombor yang besar.
Syor Penggunaan
Dalam kebanyakan senario, ketepatan berganda adalah lebih baik berbanding ketepatan apungan kerana ketepatan dan julatnya yang lebih baik. Walau bagaimanapun, terdapat situasi tertentu di mana ketepatan tunggal boleh mencukupi, seperti:
Adalah penting untuk ambil perhatian bahawa ketepatan dua kali pun tidak menjamin ketepatan mutlak kerana ralat pusingan semula jadi yang menjejaskan semua pengiraan titik terapung. Untuk operasi kritikal yang memerlukan ketepatan tinggi, pertimbangkan untuk menggunakan jenis integer atau pecahan.
Petua Tambahan:
Atas ialah kandungan terperinci Terapung vs. Berganda: Bilakah Anda Harus Memilih Ketepatan Berganda untuk Pengiraan Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!