C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > c++控制输出浮点数小数点后若干位

c++如何控制输出浮点数小数点后若干位

作者:songlu2333

这篇文章主要介绍了c++如何控制输出浮点数小数点后若干位问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

C++输出实现保留小数点后若干位

此方法主要参见《c++primer中文版》第五版670页的内容,使用<iomanip>标准库中的fixed操纵符与setprecision操纵符。

setprecision操纵符

setprecision操纵符可以指定浮点数的打印精度(总的位数),四舍五入且超过原有位数不会补零。

fixed操纵符

fixed操纵符可以改变流的状态以使用定点十进制表示浮点数,默认精度是小数点后6位,不足补零。

除此之外,iomanip中还有其他针对浮点数显示的操作符,例如scientific(科学记数法显示)、hexfloat(16进制显示),defaultfloat(恢复默认状态)。

fixed+setprecision

fixed系列的操作符会改变流的精度的默认含义,默认情况下,精度是指数字的总位数,包括小数部分位数与整数部分位数。

但在使用fixed、scientific、hexfloat后,精度值只控制小数部分,于是我们可以同时使用fixedsetprecision控制小数点后的位数,下图设置小数点后5位输出浮点数。

c++输出浮点数值“保留n位小数”或“保留n位有效位”

我们经常在输出浮点数值时,需要保留3位 / 2位等小数,或者保留几位有效位。这里有一个比较好用的方法。首先需要包含 iomanip 头文件。

1、保留n位小数位

使用fixed 和 setprecision(n)方法,参数n表示保留的小数位个数。

#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
	double PT = 3.14159267;
	//保留三位小数
	cout << fixed <<setprecision(3) << PT <<endl;
	//保留三位有效位
//	cout << setprecision(2) << PT <<endl;
	getchar();
}

结果:

2、保留n位有效位

只使用setprecision(n)方法,参数n表示保留的有效位个数。

#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
	double PT = 3.14159267;
	//保留三位小数
//	cout << fixed <<setprecision(3) << PT <<endl;
	//保留两位有效位
	cout << setprecision(2) << PT <<endl;
	getchar();
}

结果:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文