c++
C++的精度控制需要头文件
#include<iomanip>
输出时使用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