gpt4 book ai didi

C++ 数字没有正确舍入

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:07 25 4
gpt4 key购买 nike

我是 Stack Overflow 和一般编程的新手。我在几个 C++ 编程类(class)中遇到了一个我遇到了一些麻烦的作业。该程序应该采用华氏度并将其转换为摄氏度。我看过其他程序,但找不到与我的特定问题重复的程序。这是我的代码。

#include <iostream>
using namespace std;

int main()
{
int fahrenheit;
cout << "Please enter Fahrenheit degrees: ";
cin >> fahrenheit;
int celsius = 5.0 / 9 * (fahrenheit - 32.0);
cout << "Celsius: " << celsius << endl;

return 0;
}

所以这对运行的 5 个测试中的 4 个运行良好。它将 22.22 舍入为 22,将 4.44 舍入为 4,但当输入 0 F 时,它会将 -17.77 舍入为 -17 而不是 -18。我已经研究了大约一个小时,希望得到一些帮助!谢谢。

最佳答案

使用 std::round() 而不是依赖从 doubleint 的隐式转换。或者,或者根本不使用转换,将温度显示为 double

编辑:正如其他人已经指出的那样,隐式转换不会舍入而是截断数字(简单地截断小数点后的所有内容)点)。

关于C++ 数字没有正确舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36815396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com