C ++程序将华氏温度转换为摄氏温度

有人可以帮我理解为什么输出为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;                             

}


阿晨1998
浏览 1185回答 3
3回答

MYYA

(5/9)默认情况下将以整数除法计算,并且将为零。尝试(5.0/9)

qq_花开花谢_0

华氏度到摄氏温度将是 (Fahrenheit - 32) * 5 / 9

收到一只叮咚

在C ++中,5/9将结果计算为整数,因为两个操作数均为整数。您需要向编译器提示您希望结果为float / double。您可以通过显式转换以下操作数之一来实现((double)5)/9;编辑 由于它被标记为C ++,因此您可以使用进行更优雅的转换static_cast。例如:static_cast<double>(5)/9。尽管在这种特殊情况下,您可以直接使用5.0 / 9获得所需的结果,但是当您使用变量而不是常量值(例如5)时,强制转换将非常有用。
打开App,查看更多内容
随时随地看视频慕课网APP