首頁 > 後端開發 > C++ > 為什麼 C 中 `pow(10,5)` 有時回傳 9999 而不是 10000 ?

為什麼 C 中 `pow(10,5)` 有時回傳 9999 而不是 10000 ?

Susan Sarandon
發布: 2024-12-23 07:34:00
原創
340 人瀏覽過

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

為什麼 C 中的 pow(10,5) 等於 9,999 ?

當你呼叫 C 中的 pow 函數計算冪運算時,回傳值可能具有浮點精確度。然而,在某些情況下,當分配給整數變數時,結果可能會被截斷。

在提供的範例中:

const int sections = 10;

for(int t= 0; t < 5; t++){
   int i = pow(sections, 5- t -1);  
   cout << i << endl;
}
登入後複製

pow(sections, 5- t - 1) 使用整數部分和整數減法將會得到整數值。當這些值用於計算冪時,結果可能是帶有小數部分的浮點值。

將此浮點值指派給整數變數 i 會觸發截斷。例如,如果 pow(sections, 5- t -1) 計算結果為 9999.9999,則小數部分將被丟棄,留下 i = 9999。

要避免此問題,您可以直接使用pow 函數在輸出語句中:

for(int t = 0; t < 5; t++){
    cout << pow(sections,5-t-1) << endl; 
}
登入後複製

在這種情況下,結果為pow(sections,5-t-1) 直接列印,不需要中間整數變量,確保顯示正確的值。

以上是為什麼 C 中 `pow(10,5)` 有時回傳 9999 而不是 10000 ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板