為什麼 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中文網其他相關文章!