C++中控制浮点数输出

本文介绍如何在C++中使用<iomanip>库中的setprecision()函数精确控制浮点数的输出位数,包括固定格式输出及有效数字控制等技巧。

在C++中,要实现这个功能,就要用到std命名空间中常用于流的控制符,这里通常要用到setprecision()函数,可以通过这个函数控制小数点后面位数。还要注意的是,使用它需要加入头文件<iomanip>,这个头文件也好记。io是指in,out,输入输出流,manip是操作的缩写,所以iomanip里面全是输入输出流的操作。举例如下:

[cpp]  view plain  copy
  1. #include <iostream>  
  2. #include <fstream>  
  3. #include <iomanip>  
  4. //用setprecision(n)设置精度,其中n表示精确到小数点后n位  
  5. using namespace std;  
  6.   
  7. void main()  
  8. {  
  9.     double aa = 10;  
  10.     cout<<"     12345.0普通输出为:"<<12345.0<<endl;//输出12345  
  11.     cout<<fixed<<setprecision(8)<<"          10保留8位有效数字输出为:"<<aa<<endl;  
  12.     //fixed:表示普通方式输出,不采用科学计数法。fixed也可以放在setprecision(n)后面  
  13.     cout<<"     12345.0保留8位有效数字输出为:"<<12345.0<<endl;  
  14.     cout<<fixed<<setprecision(2)<<"    -123.456保留2位有效数字输出为:"<<-123.456<<endl;  
  15.   
  16.     cout << setprecision (4); // 精度  
  17.     cout.setf(ios::fixed,ios::floatfield); // 定点格式  
  18.     cout << "123.45678901保留4位有效数字输出为:"<< 123.45678901<<endl;  
  19.   
  20.     printf("     %2.4f保留2位有效数字输出为:%2.2f\n",11.1191,11.1191);  
  21.   
  22.     system("pause");  
  23. }  
结果如下:

<iomanip>这里面的控制符还有如下:


欢迎补充指正!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值