码迷,mamicode.com
首页 > 编程语言 > 详细

C++ setprecision fixed showpoint

时间:2016-05-10 02:22:54      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

首先 #include <iomanip>

 

一:setprecision

         作用:控制输出流显示浮点数的数字个数,setprecision(n)就是输出的n个数,会有四舍五入

double s=20.7843000;

cout<<setprecision(1)<<s<<endl;会输出2e+001,因为要输出一个数字,所以只有2

cout<<setprecision(2)<<s<<endl;会输出21。

cout<<setprecision(3)<<s<<endl;会输出20.8

cout<<setprecision(6)<<s<<endl;会输出20.7843

cout<<setprecision(7)<<s<<endl;会输出20.7843

cout<<setprecision(8)<<s<<endl;会输出20.7843

可见,小数部分末尾为0时,是输不出来的

要想输出来,就得用showpoint了。

 

如果再在这些语句后面加个两个语句:

cout<<1<<endl;

cout<<1.00800<<endl;

第一条输出:1。不是浮点型

第二条为:1.008。承接setprecision(8)的这条规则语句

 

如果直接有语句

int main()

{

cout<<1<<endl;

cout<<1.00<<endl;

}

第一条输出:1

第二条也为:1 

 

 

二:setprecision与showpoint

在输出语句前声明:cout.setf(ios::showpoint);就行了

 

double s=20.7843000,

cout.setf(ios::showpoint);

cout<<setprecision(1)<<s<<endl;就会输出2.e+001,注意,2和e之间多了一个“.”

cout<<setprecision(2)<<s<<endl;会输出21.。多个点

cout<<setprecision(3)<<s<<endl;会输出20.8

cout<<setprecision(6)<<s<<endl;会输出20.7843

cout<<setprecision(7)<<s<<endl;会输出20.78430

cout<<setprecision(8)<<s<<endl;会输出20.784300

可见,就会输出想要的数据数目

 

如果再在这些语句后面加个两个语句:

cout<<1<<endl;

cout<<1.0080<<endl;

 

第一条输出:1     不是浮点型。

第二条也为:1.0080000   承接setprecision(8)的这条规则语句。

 

 

三:setprecision与fixed

如果想要保留几位小数,那setprecision就得与fixed一起用

在输出语句前声明:cout.setf(ios::fixed);

 

double s=20.7843909

cout.setf(ios::fixed);

cout<<setprecision(1)<<s<<endl;就会输出2.8  

cout<<setprecision(2)<<s<<endl;会输出21.78。多个点

cout<<setprecision(3)<<s<<endl;会输出20.784

cout<<setprecision(6)<<s<<endl;会输出20.784391

cout<<setprecision(7)<<s<<endl;会输出20.7843909

cout<<setprecision(8)<<s<<endl;会输出20.78439090

 

如果也再在这些语句后面加个两个语句:

cout<<1<<endl;

cout<<1.008<<endl;

 

第一条输出:1

第二条为:1.00800000

就是承接了setprecision(8)的这条规则语句,是浮点型的都会保留8个小数。是整型的还是整型

 

语句也可以写成:cout<<fixed<<setprecision(2)<<s<<endl;

就算后面的语句没有写<<fixed,同样会按有<<fixed处理

 

cout<<fixed<<setprecision(2)<<s<<endl;

A:cout<<setprecision(7)<<s<<endl;

B:cout<<setprecision(8)<<s<<endl;

AB语句均会按保留7个,8个小数处理,不会再按有7或8个浮点数处理。

如果下面继续添加语句C:

cout<<1.008<<endl;也会保留8个小数

 

 

 

double s=20.7843909

 

cout<<setprecision(2)<<s<<endl;//输出21

cout<<fixed<<s<<endl;//输出20.78

 

 

cout<<setprecision(2)<<s<<endl;//输出21

cout<<showpoint<<s<<endl;//输出21.(有个点)

 

 

cout<<fixed<<s<<endl;//输出20.78391 
cout<<showpoint<<s<<endl;//输出20.78391 

 

cout<<setprecision(2)<<s<<endl;//输出21 
cout<<fixed<<s<<endl;//输出20.78 
cout<<showpoint<<s<<endl;//输出20.78

 

 

cout<<setprecision(2)<<s<<endl;//输出21 
cout<<showpoint<<s<<endl;//21.(有个点) 
cout<<fixed<<s<<endl;//20.78

C++ setprecision fixed showpoint

标签:

原文地址:http://www.cnblogs.com/Ro0kie/p/5476389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!