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
Lepaskan: 2024-12-23 07:34:00
asal
340 orang telah melayarinya

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;
}
Salin selepas log masuk

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; 
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan