博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
setprecision、fixed、showpoint的用法总结(经典!!超经典!!)
阅读量:7237 次
发布时间:2019-06-29

本文共 2647 字,大约阅读时间需要 8 分钟。

首先要加头文件: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个小数。

四:setprecision、showpoint与fixed

{cout<<fixed<<setprecision(2)<<123.456<<endl;//输出的结果是123.46

cout<<showpoint<<12345.0006666<<endl;//输出12345.0
cout<<fixed<<setprecision(2)<<123.456<<endl;}

比如:double s=20.7843909

1.有语句

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

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

2.有语句:

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

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

 3.有语句:

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

cout<<showpoint<<s<<endl;//输出20.78391
4.有语句:

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

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

5.有语句:

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

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

 

 

 

 

 

 

 

 

 

 

 

 

转载地址:http://ntofm.baihongyu.com/

你可能感兴趣的文章
Maven的作用、用途、内涵、愿景
查看>>
ref与out区别(ref有进有出,而out只出不进)
查看>>
WPF中应用字体图标
查看>>
Redis(2)-----初识Redis-----基础redis命令
查看>>
Python爬虫项目整理
查看>>
UNIX PIPES 管道原稿
查看>>
使用remix发布部署 发币 智能合约
查看>>
verilog语法实例学习(1)
查看>>
杭电2079
查看>>
Delphi单元--共50个函数
查看>>
(原創) 如何將Quartus II 7.2所建立的SOPC系統升級到Quartus II 8.0? (SOC) (Quartus II) (SOPC Builder)...
查看>>
如果不使用 Navigate2 的方法去访问现有页面,如何将JS写到该浏览器中???
查看>>
Form表单中method="post/get'的区别
查看>>
'telnet' is not recognized as an internal or external command
查看>>
什么是 MIME Type?
查看>>
c#设计模式第一天
查看>>
Jquery.Form和jquery.validate 的使用
查看>>
c++ string 和wstring 之间的互相转换函数
查看>>
mathematica练习程序(图像取反)
查看>>
mssql和mysql区别
查看>>