首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Cout 怎么控制以小數形式的輸出並控制輸出精度

2012-04-15 
Cout 如何控制以小數形式的輸出並控制輸出精度我想輸出一個double類型的數,以小數形式輸出,並且保留4位小

Cout 如何控制以小數形式的輸出並控制輸出精度
我想輸出一個double類型的數,以小數形式輸出,並且保留4位小數,該怎麼辦啊?
(printf也行)

[解决办法]

C/C++ code
cout.precision(4);cout.setf(ios_base::fixed,ios_base::floatfield);cout.setf(ios_base::showpoint);
[解决办法]
cout <<setprecision(4) <<amount <<endl;//保留4位小数
[解决办法]
cout <<setprecision(4) <<amount <<endl;//保留4位有效数字
[解决办法]
cout <<setprecision(4) <<amount <<endl;//保留4位有效数字
我这儿可以啊,你的输出的是什么?
[解决办法]
这个估计不好办,
要么是输出四位小数,用这个cout<<setiosflags(ios::fixed)<<setprecision(2) << c <<endl;
要么是输出四位有效数字,用这个cout <<setprecision(4) <<amount <<endl;//保留4位有效数字

[解决办法]
你的要求太特殊,这个基本上满足你的要求了。。。不管怎么说
C/C++ code
#include <sstream> #include <string>#include <iomanip>#include <iostream>using namespace std;void myPrint(double d){    std::stringstream ss1,ss2;    std::string text = "";     ss1<< d;    ss1 >> text;     if(text.find('e')!=string::npos)    {        string s1=text.substr(0,text.find('e'));        string s2=text.substr(text.find('e')+1);        string s3="";        ss2<<s2;        int bit;        ss2>>bit;        cout<<"0.";        for(int i=0;i<-bit-1;i++)            cout<<'0';        if(s1.find('.')!=string::npos)        {            s3=s1.erase(s1.find('.'),s1.find('.'));            s3.erase (s3.begin()+4, s3.end());            cout<<s3<<"\n";                    }        else            cout<<s1<<"\n";    }    else        cout<<text<<"\n";}int main(void) {     double amount = 0.000000000727919;    myPrint(amount);    system("pause");} 

热点排行