cout<< 精度控制 setprecision、fixed、showpoint的用法总结

cout<

其实是
std::cout<
std::代表标准库全局域
std::ios∷fixed代表全局域下有个类ios,ios类中有个常量fixed。
std::setiosflags(std::ios∷fixed)设置小数。
std::setprecision(4); //设置精度

#include 头文件必须包含,这个没什么好说的,上面的都在iomanip中定义。



首先要加头文件:iomanip

一:setprecision

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

比如:double s=20.7843000,

cout<

cout<

cout<

cout<

cout<

cout<

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

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

特别提示 :

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

cout<<1<

cout<<1.00800<

猜到会输出什么吗?

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

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

注:

如果直接有语句

int main()

{

cout<<1<

cout<<1.00<

}

第一条输出:1。

第二条也为:1。按整型输出 

二:setprecision与showpoint

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

还比如:double s=20.7843000,

cout.setf(ios::showpoint);

cout<

cout<

cout<

cout<

cout<

cout<

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

特别提示 :

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

cout<<1<

cout<<1.0080<

猜到会输出什么吗?

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

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

 

三:setprecision与fixed

如果想要保留几位小数,那setprecision就得与fixed合作了!!

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

比如:double s=20.7843909

cout.setf(ios::fixed);

cout<

cout<

cout<

cout<

cout<

cout<

特别提示 :

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

cout<<1<

cout<<1.008<

猜到会输出什么吗?

第一条输出:1。

第二条为:1.00800000。

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

语句也可以写成:cout<

       就算后面的语句没有写<

比如有语句:

cout<

A:cout<

B:cout<

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

如果下面有语句c:

cout<<1.008<

四:setprecision、showpoint与fixed

{cout< cout< cout<

比如:double s=20.7843909

1.有语句

cout<

cout<

2.有语句:

cout<

cout<

 3.有语句:

 cout< cout< 4.有语句:

cout< cout< cout<

5.有语句:

cout< cout< cout<

你可能感兴趣的:(C++)