提高浮点数输出精度

lc19890326 2008-04-30 06:59:37
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double a;
cin>>a;
cout<<setprecision(12)<<a<<endl;
return 0;
}

输出为何是2 ,我需要输出2.00000000,怎么办
...全文
198 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
不知,帮顶
hujinyong199 2008-04-30
  • 打赏
  • 举报
回复
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double a;
cin>>a;
cout <<fixed<<setprecision(12) <<a <<endl;
return 0;
}
jolley 2008-04-30
  • 打赏
  • 举报
回复

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
double a;
cin>>a;
cout<<fixed;
cout<<setprecison(8)<< a<< endl;
return 0;
}
clhposs 2008-04-30
  • 打赏
  • 举报
回复
C++ 实现我不会

但是如果是C实现 那就很简单

float a=2.0;
printf("%.12f",a);
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lc19890326 的回复:]
我只要输出 2.0000000 多几个零的那种
不是科学计数法
如果a是根号2的号,输出精度我会控制
但a是2就控制不了 ,怎么办
急求解答
[/Quote]
用10楼的方法,输入2
输出2.000000000000

不知道楼主要的是不是那样效果
effective_person 2008-04-30
  • 打赏
  • 举报
回复

cout <<setprecision(12)<<setiosflags(ios::fixed) <<a <<endl;
//用setiosflags
lc19890326 2008-04-30
  • 打赏
  • 举报
回复
我只要输出 2.0000000 多几个零的那种
不是科学计数法
如果a是根号2的号,输出精度我会控制
但a是2就控制不了 ,怎么办
急求解答
  • 打赏
  • 举报
回复
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double a;
cin>>a;
cout<<setprecision(12);
cout<<setiosflags(ios::fixed)<<a<<endl;
return 0;
}

改成这样可以符合你的要求。
其中一些函数说明可以参考以下

dec 置基数为10 相当于"%d"
hex 置基数为16 相当于"%X"
oct 置基数为8 相当于"%o"
setfill(c) 设填充字符为c
setprecision(n) 设显示小数精度为n位
setw(n) 设域宽为n个字符
setiosflags(ios::fixed) 固定的浮点显示
setiosflags(ios::scientific) 指数表示
setiosflags(ios::left) 左对齐
setiosflags(ios::right) 右对齐
setiosflags(ios::skipws 忽略前导空白
setiosflags(ios::uppercase) 16进制数大写输出
setiosflags(ios::lowercase) 16进制小写输出
setiosflags(ios::showpoint) 强制显示小数点
setiosflags(ios::showpos) 强制显示符号

clhposs 2008-04-30
  • 打赏
  • 举报
回复
楼上正解 但是貌似他不是要这种方法
effective_person 2008-04-30
  • 打赏
  • 举报
回复

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double a;
cin>>a;
cout << setiosflags(ios_base::scientific)<< a <<endl; //用科学计数法
return 0;
}

lc19890326 2008-04-30
  • 打赏
  • 举报
回复
我输入2 输出2.00000000000
怎么办呢 不是根号2啊
clhposs 2008-04-30
  • 打赏
  • 举报
回复
结帖吧 呵呵
clhposs 2008-04-30
  • 打赏
  • 举报
回复
#include<iostream> 
#include<cmath>
using namespace std;
int main()
{
cout.precision(12);
cout<<cout.precision()<<endl
<<sqrt(2.0)<<endl;
return 0;
}
lc19890326 2008-04-30
  • 打赏
  • 举报
回复
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double a;
cin>>a;
cout.precision(12);
cout<<a<<endl;
return 0;
}
这样还是没用啊
lc19890326 2008-04-30
  • 打赏
  • 举报
回复
写到哪个位置呢 ?
clhposs 2008-04-30
  • 打赏
  • 举报
回复
cout.precision(12);

12位
clhposs 2008-04-30
  • 打赏
  • 举报
回复
precision函数

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧