c++中double类型数据问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 14:27:01
例如这样一个程序:
main()
{double a;
cin>>a;
cout<<a<<endl;
}
运行时如果输入1.5,结果为1.5,但是如果输入1.0,结果为什么就变成了整型的1了呢?请教一下各位高手
如果当输入1.0,想让他输出也为1.0,应该怎么改?

setprecision(n) 设显示小数精度为n位
setiosflags(ios::showpoint) 强制显示小数点
这个函数在iomanip里 也就是需要#include<iomanip>

cout<<setprecision(2)<<a<<endl;

我给你写了一个
-----------------------------------------

#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
double a;
cin>>a;
cout<<setprecision(5)<<setiosflags(ios::showpoint)<<a<<endl;
return 0;
}

当然了 你也可以这样
----------------------------------------------------
#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
double a;
cin>>a;
cout<<setiosflags(ios::fixed)<<setprecision(3)<<a<<endl;
return 0;
}

你给它限定一个输出精度就好了

也许是系统会自己转化吧。

应该不会是1吧!

输出是1不等于那是整形的1

printf("%.1f",a);