回 帖 发 新 帖 刷新版面

主题:大神看看哪里错了 哪里能简洁 求助~~

#include<iostream>
#include<iomanip>
using namespace std;
const double pi=3.1415926;
int a(double x)
{
 cout<<"输出8位有效位数的浮点数:"<<endl;
 cout<<setprecision(8)<<x<<endl;
 return 0;
}
int b(double x)
{
 cout<<"输出6位小数位表示的数:"<<endl;
 cout<<setprecision(6)<<fixed;
 cout<<x<<endl;
 cout<<setprecision(6);
 return 0;
}
int c(double x)
{
 cout<<"输出6位小数位指数方式表示的数:"<<endl;
 cout<<setiosflags(ios::scientific)<<x<<endl;
 return 0;
}
int main()
{
 double x=pi;
 a(x);
 b(x);
 c(x);
 return 0;
}

 

编译能过 结果不对 大婶们看看

回复列表 (共1个回复)

沙发

简而言之,你想问的是为什么先fixed再scientific时输出浮点数不对,即 std::cout << std::fixed << setiosflags(std::ios::scientific) << 3.14 << std::endl; 不是输出 3.140000e+000 我的建议是, 1。按理来说不应该是这样,你换个好一点的编译器试试看,比如gcc/mingw 2。解决这个问题很简单,你把 fixed 干掉就行。既然你在b函数中设置了fixed,那在其退出时加个 std::cout.unsetf(std::ios_base::fixed); 就行了

我来回复

您尚未登录,请登录后再回复。点此登录或注册