有人可以帮我理解为什么输出为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条经验 获得超4个赞
在C ++中,5/9将结果计算为整数,因为两个操作数均为整数。您需要向编译器提示您希望结果为float / double。您可以通过显式转换以下操作数之一来实现((double)5)/9;
编辑 由于它被标记为C ++,因此您可以使用进行更优雅的转换static_cast。例如:static_cast<double>(5)/9。尽管在这种特殊情况下,您可以直接使用5.0 / 9获得所需的结果,但是当您使用变量而不是常量值(例如5)时,强制转换将非常有用。
- 3 回答
- 0 关注
- 1179 浏览
添加回答
举报
0/150
提交
取消