有人可以幫我理解為什么輸出為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貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
在C ++中,5/9將結(jié)果計(jì)算為整數(shù),因?yàn)閮蓚€(gè)操作數(shù)均為整數(shù)。您需要向編譯器提示您希望結(jié)果為float / double。您可以通過顯式轉(zhuǎn)換以下操作數(shù)之一來實(shí)現(xiàn)((double)5)/9;
編輯 由于它被標(biāo)記為C ++,因此您可以使用進(jìn)行更優(yōu)雅的轉(zhuǎn)換static_cast。例如:static_cast<double>(5)/9。盡管在這種特殊情況下,您可以直接使用5.0 / 9獲得所需的結(jié)果,但是當(dāng)您使用變量而不是常量值(例如5)時(shí),強(qiáng)制轉(zhuǎn)換將非常有用。
- 3 回答
- 0 關(guān)注
- 1221 瀏覽
添加回答
舉報(bào)
0/150
提交
取消