C++ cout输出保留小数

参考:

http://www.cnblogs.com/wushuaiyi/p/4439361.html

http://blog.csdn.net/edricbjtu/article/details/41082597

C 语言中 printf () 函数可以非常方便控制保留 几位小数输出,在 C++ 当中也是可以控制小数保留,cout () 和 printf () 还是有一些区别。

需要头文件#include <iomanip>

  • setprecision()来用来保存有效数字,fixed和setprecision()一起用就变成保存小数点后有效数字。 
  • fixed 可以通过 cout.unsetf(ios::fixed); 这段代码关掉。不然会一直开着。
  • fixed有个地方需要注意的是可以保存的有效数字包括0,不开fixed的话,即使保存3个有效数字,小数点后的0也会自动省略。即 1.2 要是setprecision(3) 结果还是1.2 而不是1.20. 所以通常想要像在printf()中一样使用,都是要开fixed的!

下面是测试代码,自己打一遍过一下,就更熟悉了。

 1 #include <iostream>
 2 #include<iomanip>
 3 using namespace std;
 4 
 5 
 6 int main()
 7 {
 8     //需要头文件#include <iomanip>
 9     double a=46.21534,b=1.20001;
10     cout.setf(ios::fixed);                      //功能和下一行的fixed功能一样,同时写没关系
11     cout<<fixed<<setprecision(2)<<b<<endl;      //输出结果为1.20
12     cout.unsetf(ios::fixed);
13     cout << setprecision(2) << b<<endl;         //输出结果为1.2
14     cout<<setprecision(5)<<a<<endl;             //输出结果为46.215
15     cout<<setprecision(1)<<a<<endl;             //输出结果为5e+001
16     return 0;
17 }
原文地址:https://www.cnblogs.com/weedboy/p/6831678.html