有人可以幫我理解為什么輸出為0嗎?#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; }
3 回答

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
在C ++中,5/9將結果計算為整數,因為兩個操作數均為整數。您需要向編譯器提示您希望結果為float / double。您可以通過顯式轉換以下操作數之一來實現((double)5)/9;
編輯 由于它被標記為C ++,因此您可以使用進行更優雅的轉換static_cast。例如:static_cast<double>(5)/9。盡管在這種特殊情況下,您可以直接使用5.0 / 9獲得所需的結果,但是當您使用變量而不是常量值(例如5)時,強制轉換將非常有用。
- 3 回答
- 0 關注
- 1226 瀏覽
添加回答
舉報
0/150
提交
取消