C++:保留小数点后几位

一、话不多说,直接上代码

	#include <iomanip>  //不要忘了头文件
	
	#define PI acos(-1)
	
    cout << PI << endl;  //3.14159
    double num = 0.202044;
//第一种写法:设置一次,即可生效
	cout << setiosflags(ios::fixed) << setprecision(8)<<PI<<endl; //3.14159265
    cout << num << endl;    //0.20204400                                                       
//第二种写法:设置一次,即可生效
	cout.setf(ios::fixed);
	cout<<setprecision(8)<<PI<<endl;   //3.14159265
	cout << num << endl;              //0.20204400 
//第三种写法:设置一次,即可生效
	cout << fixed << setprecision(8) << PI << endl;  //3.14159265
	cout << num << endl;                             //0.20204400 

二、setprecision(n)

功能:控制浮点数显示的有效数字个数。

  1. 只写一次就可以
  2. 只是四舍五入修改了数字的显示方法,并不是修改原数字。如果12.212144数字本身改变,那就是两位有效数字变为 12,那从两位有效数字改为四位有效数字会变为 12.00,而不是12.21。
  3. 如果要保留的太多,是不会补上0的
  4. 如果小数点前的位数多于你要保留位数,则会使用科学计数法
#include   <iostream>
#include <iomanip> 

using namespace std; 

int main() {

	double num = 12.212144;

	cout << setprecision(2) << num << endl;
	cout << num << endl;
	cout << setprecision(4) << num << endl;
	cout << setprecision(6) << num << endl;
	cout << setprecision(7) << num << endl;
	cout << setprecision(8) << num << endl;
	cout << setprecision(10) << num << endl;
	cout << setprecision(1) << num << endl;

	return 0;
}
//结果:
12
12
12.21
12.2121
12.21214
12.212144
12.212144
1e+01
  1. 如果小数点最后一位是0,不显示最后一位
#include   <iostream>
#include <iomanip> 

using namespace std; 

int main() {

	double num = 12.202044;

	cout << setprecision(2) << num << endl;
	cout << num << endl;
	cout << setprecision(4) << num << endl;
	cout << setprecision(6) << num << endl;
	cout << setprecision(7) << num << endl;
	cout << setprecision(8) << num << endl;
	cout << setprecision(10) << num << endl;
	cout << setprecision(1) << num << endl;
		
	return 0;
}
//结果
		12
		12
		12.2
		12.202
		12.20204
		12.202044
		12.202044
		1e+01

三、fixed

setprecision(n)和fixed合用的话可以控制小数点后有几位。
只要加上以下任意一个语句就可以。

cout<<setiosflags(ios::fixed);

cout.setf(ios::fixed);

cout<<fixed;

fixed使得如果要保留的位数多于数字原来的小数,就会补上0。
用法见第一部分。

参考:
文章1
侵删

发布了3 篇原创文章 · 获赞 0 · 访问量 245

猜你喜欢

转载自blog.csdn.net/weixin_43991826/article/details/105306706