Berurusan dengan Had Ketepatan dalam Pengiraan Titik Terapung
Nombor titik terapung digunakan secara meluas dalam pengkomputeran, tetapi ia datang dengan had ketepatan yang wujud . Satu isu sedemikian ialah ketidakupayaan untuk mewakili semua nombor nyata dengan tepat, yang membawa kepada ralat pembundaran semasa pengiraan.
Isu dengan Perwakilan Titik Terapung
Pertimbangkan kod berikut yang cuba untuk mengira bilangan lajur berdasarkan nilai tertentu:
double mw = 4.5999999999999996; // Represented as 4.6 internally double p = 0.2; double g = 0.2; int h = 1; int columns = (int) ((mw - (h * 11 * p)) / ((h * 11 * p) + g)) + 1;
Walaupun mempunyai hasil yang diingini daripada 2, program tidak betul mengeluarkan 1. Ini kerana perwakilan titik terapung dalaman 4.6 (4.5999999999999996) menyebabkan ralat pembundaran dalam pengiraan.
Mengatasi Isu Ketepatan
Mengatasi isu ketepatan ini memerlukan mengiktiraf had aritmetik titik terapung:
Atas ialah kandungan terperinci Mengapa Pengiraan Titik Terapung Menghasilkan Keputusan Yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!