c/c++输出保留指定位小数(输出精度控制)

c++

C++的精度控制需要头文件

#include

输出时使用setprecision()和fixed进行精度控制和补0
在使用时,可以提前声明,也可以直接写在输出流中

float a=0.123;
cout<<a<<endl;//输出 0.123

cout<<setprecision(5)<<a<<endl;//输出 0.123
//方法一:
cout<<setiosflags(ios::fixed)<<setprecision(5);
cout<<a<<endl;//输出 0.12300
//方法二:
cout.setf(ios::fixed);
cout<<setprecision(5);
cout<<a<<endl;//输出 0.12300
//方法三:
cout<<fixed<<setprecision(5)<<a;//输出 0.12300
  • 需要保留几位小数,就将 setprecision(n) 的括号里n换成几

  • 上面的语句写一次就够了,对之后的数字都有效

  • 函数 setprecision() 控制输出流的输出精度(精度控制采用四舍五入)
    注意:setprecision单独使用是控制有效位数的,与fixed合用才是控制小数点后位数的
    eg.

	float a=12.123456;
	cout<<setprecision(3)<<a; //输出12.1
	cout<<fixed<<setprecision(3)<<a;//输出12.123
  • fixed是设置补0,以下三种写法任选其一即可
	cout<<setiosflags(ios::fixed);
	cout.setf(ios::fixed);
	cout<fixed;
  • 如果不想补0,可以设置关闭fixed
	cout.unsetf(ios::fixed); 

C语言

c语言的精度控制较为简单

float a=123.45;
double b=22.3736723;
printf("%.5f %.2f %.12f",12.3,a,b);//输出:12.30000 123.45 22.373627230000
  • "%.nf" 其中n即为保留的小数位数
  • 不设定保留几位小数,则默认六位

参考:
https://www.cnblogs.com/chaoswr/p/7783515.html
https://blog.csdn.net/qq_36667170/article/details/79265224

你可能感兴趣的:(c++)