#include <iostream>
#include<stdlib.h>
using namespace std;
int main()
{
double c,f;
cout << "请输入华氏温度:\n";
cin >> f;
c = 5 / 9* (f - 32);
cout << "相应华氏温度为:" << c;
system("pause");
return 0;
}
。为什么我得到的值为0,还有怎么让它精确到2位小数,并且4四舍五入第三位。
c++编程序实现华氏温度到摄氏温度的转换
答案:5 悬赏:20 手机版
解决时间 2021-03-04 18:18
- 提问者网友:辞取
- 2021-03-04 09:17
最佳答案
- 五星知识达人网友:零点过十分
- 2021-03-04 10:04
你的代码中问题
1、一个双精度数据与一个整数数据运算,结果默认为整数数据。
2、输出精确到2位小数的方法。
正确代码如下:
#include <iostream>
#include<stdlib.h>
#include <iomanip> //--注意
using namespace std;
int main()
{
double c,f;
cout << "请输入华氏温度:\n";
cin >> f;
c = (5.00000 / 9.00000)* (f - 32.00000);
//cout << "相应华氏温度为1:" << c ;
cout << "相应华氏温度为2:" << setprecision(2)<<fixed<<c ; //--注意
system("pause"); //暂停以查看
return 0;
}
1、一个双精度数据与一个整数数据运算,结果默认为整数数据。
2、输出精确到2位小数的方法。
正确代码如下:
#include <iostream>
#include<stdlib.h>
#include <iomanip> //--注意
using namespace std;
int main()
{
double c,f;
cout << "请输入华氏温度:\n";
cin >> f;
c = (5.00000 / 9.00000)* (f - 32.00000);
//cout << "相应华氏温度为1:" << c ;
cout << "相应华氏温度为2:" << setprecision(2)<<fixed<<c ; //--注意
system("pause"); //暂停以查看
return 0;
}
全部回答
- 1楼网友:洎扰庸人
- 2021-03-04 15:19
#include
using namespace std;
void main()
{
float f;
cout<<"输入摄氏温度"< cin>>f;
cout<<"输出华氏温度为:"< cout<<(f*9.0f/5.0f)+32.0f<
}
vs 2005调试通过
- 2楼网友:污到你湿
- 2021-03-04 14:16
注意你算式里的5/9,它的除数和被除数都是整型,所以表示整除,5整除9等于0,所以得到的值为0。 要控制精确度,可以使用printf,要精确两位就是printf("%.2llf",c);
- 3楼网友:轮獄道
- 2021-03-04 12:54
c = 5 / 9* (f - 32); 这行代码有问题
你期望的是double类型的数值进行四则运算 可是计算式中的两个常量在编译器中被认为是两个int类型的数值 5/9可不就是0嘛 所以计算式始终为0
而且这个式子还有个问题 数值隐式类型转换会把double转换为int 即便你的前面两个常量可以得到非0值 你得到的结果始终都是整型
至于按要求输出小数位数 c++库是有相关处理接口的
#include <iomanip>
double x=123.0;
cout << setprecision(2) << x << endl;
这个接口是否有四舍五入的设计 我不太清楚 你需要自己测试一下
- 4楼网友:逃夭
- 2021-03-04 11:26
#include <iomanip.h>
c = 5*1.0 / 9* (f - 32);
cout.precision(3);
cout << "相应华氏温度为:" << c;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯