C++简单的华氏度转换

C++ Simple Farenheit Conversion

本文关键字:转换 简单 C++      更新时间:2023-10-16

我正在尝试创建一个简单的程序,该程序采用用户输入的摄氏度值,并将其转换为华氏度。

#include <iostream>
using namespace std;
int main()
{
    float celsius, farenheit;
    cout << "Enter a temperature in farenheit ";
    cin >> farenheit;
    celsius = (farenheit - 32) *  (5 / 9);
    cout << celsius;
    return 0;
}

它总是打印一个值 0,这是为什么?

这是因为您乘以 5 / 9 ,由于整数除法,它为零。

如果您像这样更改括号

celsius = ((farenheit - 32) *  5) / 9;

你会得到正确的结果。

由于您用括号括(5 / 9),编译器在执行乘法之前计算了该值。由于 (5 / 9) 是整数表达式,因此编译器执行整数除法,这意味着小数部分将被丢弃。结果,所有适当的分数都变为零。

解决此问题的另一种方法是强制C++使用浮点除法,方法是通过将一个或两个数字附加到浮点常量(特别是 double 类型的常量)来强制.0,例如:

celsius = (farenheit - 32) *  (5.0 / 9);