Rumah >pembangunan bahagian belakang >C++ >Mengapakah `pow(5, 2)` Mengembalikan 24 Daripada 25?
Mengapa pow(5, 2) Mengembalikan 24?
Dalam atur cara kalkulator anda, anda menghadapi tingkah laku yang tidak dijangka dengan kuasa fungsi. Walaupun anda menjangkakan 5^2 bersamaan dengan 25, pow(5, 2) mengembalikan 24. Percanggahan ini timbul disebabkan oleh pengendalian jenis data bagi fungsi pow().
Fungsi pow() mengembalikan terapung- nombor titik. Dalam kes khusus anda, pow(5, 2) sebenarnya mengembalikan 24.99997 atau nilai titik terapung yang serupa. Walau bagaimanapun, memandangkan anda memberikan hasil kepada pembolehubah integer, ia akan dipotong kepada integer terdekat, menghasilkan 24.
Untuk menangani isu ini, terdapat dua pertimbangan:
Pembulatan lwn. Pemangkasan: Untuk fungsi kuasa, adalah sesuai untuk membundarkan titik terapung hasil kepada integer terdekat. Ini memastikan ketepatan tanpa memperkenalkan ralat pembundaran. Anda boleh mencapai ini dengan menambah 0.5 pada hasil sebelum memberikannya kepada pembolehubah integer:
int answer; answer = pow(number1,number2)+0.5;
Atas ialah kandungan terperinci Mengapakah `pow(5, 2)` Mengembalikan 24 Daripada 25?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!