C++中如何精确数的输出位数

本文介绍了C++中控制浮点数输出精度的方法,包括cout的precision函数配合fixed,setprecision格式控制符,以及setw()和setfill()用于设置输出字段宽度。通过实例展示了如何使用这些方法来精确控制小数位数和输出格式。
摘要由CSDN通过智能技术生成

C++中精确输出位数的方法


precision()函数和fixed合用的方法。

其中,fixed表示使用一般的方法(不是科学计数法之类的)输出浮点数。
precision是cout自定义的函数,用来设置小数输出位数的精度。
注意:如果precision函数没有配合fixed使用的话,它表示的精度就包括了小数的位数。

double pai = 3.1415926535;
cout.precision(5);
cout<<pai<<endl;  //3.1416
cout<<fixed<<pai<<endl;  //3.14159

使用setprecision()格式控制符。

使用setprecision格式控制符,就要声明头文件#include<iomanip>
setprecision(n)设置精度,其中n表示输出n位。

double pai = 3.1415926535;
cout<<setprecision(5)<<pai<<endl; //3.1416
cout<<fixed<<setprecision(5)<<pai<<endl; //3.14159

使用setw(n)和setfill()。

setw(n)表示输出n个长度的字段。
setw()函数只对紧接着的输出产生作用,当后面紧跟着的输出字段长度小于n时,在该字段前面用空格补齐,当输出字段长度大于n时,全部整体输出。
setw()不仅可以输出数字,也可以输出字符串等类型的数据。
setw() 默认填充的内容为空格,可以 setfill() 配合使用设置其他字符填充。

double pai = 3.1415;
cout<<setw(8)<<pai<<endl; //  3.1415
cout<<setw(8)<<setfill('*')<<pai<<endl; //**3.1415

当然,C++兼容C语言,可以用C语言中的方法设置精度。

printf(“格式控制字符串”,输出表列)。

格式控制字符串 为 %- 0 m.n l/h 格式字符
% 为格式说明的引导符号,- 为指定左对齐输出,0 为 指定空位填0,m.n 指定输出域宽及精度,即m为输出总位数,n为小数点后位数,l/h 输出长度的修正,格式字符为指定输出的数据类型。

double pai = 3.1415926535;
printf("%.4lf\n",pai);
printf("%8.4lf\n",pai);
printf("%-8.4lf\n",pai);
printf("%08.4lf\n",pai);

执行结果:
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值