從攝氏度到華氏度的錯誤轉換
在C 中,使用浮點運算從攝氏度到華氏度的轉換需要特別注意。考慮以下程式碼:
<code class="cpp">#include <iostream> using namespace std; int main() { float celsius; float fahrenheit; cout << "Enter Celsius temperature: "; cin >> celsius; fahrenheit = (5/9) * (celsius + 32); cout << "Fahrenheit = " << fahrenheit << endl; return 0; }</code>
為什麼程式對於任何攝氏度輸入都會輸出 0?
問題在於 (5/9) 的整數除法。預設情況下,C 執行整數除法,在本例中結果為 0。為了解決這個問題,我們必須將其中一個運算元轉換為浮點型別以強制進行浮點除法。修正後的程式碼如下:
<code class="cpp">#include <iostream> using namespace std; int main() { float celsius; float fahrenheit; cout << "Enter Celsius temperature: "; cin >> celsius; fahrenheit = (5.0/9) * (celsius + 32); cout << "Fahrenheit = " << fahrenheit << endl; return 0; }</code>
以上是為什麼我的攝氏度到華氏度轉換總是輸出 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!