Rumah >pembangunan bahagian belakang >C++ >Mengapakah `pow(10,5)` Kadangkala Mengembalikan 9999 Daripada 10000 dalam C ?

Mengapakah `pow(10,5)` Kadangkala Mengembalikan 9999 Daripada 10000 dalam C ?

Susan Sarandon
Susan Sarandonasal
2024-12-23 07:34:00343semak imbas

Why Does `pow(10,5)` Sometimes Return 9999 Instead of 10000 in C  ?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn