Mengapa pow(10,5) Sama dengan 9,999 dalam C ?
Apabila anda menggunakan fungsi pow dalam C untuk mengira operasi kuasa , nilai pulangan berpotensi mempunyai ketepatan titik terapung. Walau bagaimanapun, dalam kes tertentu, hasilnya mungkin dipotong apabila ditetapkan kepada pembolehubah integer.
Dalam contoh yang disediakan:
const int sections = 10; for(int t= 0; t < 5; t++){ int i = pow(sections, 5- t -1); cout << i << endl; }
Pengiraan berulang pow(bahagian, 5- t - 1) menggunakan bahagian integer dan penolakan integer akan menghasilkan nilai integer. Apabila nilai ini digunakan untuk mengira kuasa, hasilnya mungkin nilai titik terapung dengan bahagian pecahan.
Menetapkan nilai titik terapung ini kepada pembolehubah integer i mencetuskan pemotongan. Sebagai contoh, jika pow(bahagian, 5- t -1) menilai kepada 9999.9999, bahagian pecahan akan dibuang, meninggalkan anda dengan i = 9999.
Untuk mengelakkan isu ini, anda boleh terus menggunakan fungsi pow dalam pernyataan output:
for(int t = 0; t < 5; t++){ cout << pow(sections,5-t-1) << endl; }
Dalam kes ini, hasil daripada pow(bahagian,5-t-1) dicetak terus tanpa memerlukan pembolehubah integer perantaraan, memastikan nilai yang betul dipaparkan.
Atas ialah kandungan terperinci Mengapakah `pow(10,5)` Kadangkala Mengembalikan 9999 Daripada 10000 dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!