Rumah >pembangunan bahagian belakang >C++ >Mengapa Fungsi pow(5,2) Saya Mengembalikan 24 Daripada 25?
Dalam kalkulator ringkas dengan fungsi matematik, pow () fungsi nampaknya menghasilkan keputusan yang tidak tepat, khususnya untuk kuasa. Operasi pow(5,2) mengembalikan 24, yang tidak betul.
Punca percanggahan ini terletak pada penukaran jenis data. Fungsi pow() dalam kod yang disediakan mengembalikan nombor titik terapung, tetapi hasilnya diberikan kepada pembolehubah integer (int jawapan). Akibatnya, bahagian perpuluhan nombor itu dipotong apabila penukaran berlaku.
Untuk mendapatkan hasil yang betul, pengiraan perlu diubah suai untuk mengendalikan titik terapung nilai. Terdapat dua pendekatan yang dicadangkan:
Membundarkan Hasil Titik Terapung:
Dengan menambahkan 0.5 pada hasil pow() sebelum menetapkannya kepada pembolehubah integer, ia boleh dibundarkan kepada integer terdekat. Kaedah ini sesuai apabila keputusan dijangka menjadi integer.
int answer; answer = pow(number1,number2) + 0.5;
Menggunakan Pembolehubah Bukan Integer untuk Keputusan Titik Terapung:
Jika keputusan tidak dijamin sebagai integer, disyorkan untuk menggunakan pembolehubah berganda atau terapung dan bukannya integer. Dengan cara ini, bahagian perpuluhan nombor akan dikekalkan.
double answer; answer = pow(number1,number2);
Fungsi punca kuasa dua dalam kod juga memberikan hasil kepada pembolehubah integer, yang tidak sesuai. Memandangkan punca kuasa dua selalunya bukan kamiran, adalah disyorkan untuk menggunakan pembolehubah berganda atau terapung untuk menyimpan hasilnya.
Atas ialah kandungan terperinci Mengapa Fungsi pow(5,2) Saya Mengembalikan 24 Daripada 25?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!