C / C++ 保留小数函数(setprecision(n)的一些用法总结)
橘嘉禾 人气:0从C语言开始正式学习C++,但是一上来输出位数就懵了,查资料才知道C++需要使用 “ setprecision ”函数。自己总结一下。
首先说C++代码
#include <iomanip> //setprecision(n)函数在 iomanip 头文件中
//第一种写法
cout<<setiosflags(ios::fixed)<<setprecision(n);
//第二种写法 cout.setf(ios::fixed); cout<<setprecision(2);
//第三种写法
cout<<fixed<<setprecision(2);
要保留几位小数setprecision(n)的括号里n就换成几。
前两种写法是一样的,第三种是简化写的。
上面的语句写一次就行了,对之后的数字都有效。
## 然后说C的代码
最近了解了一下C语言的输出,毕竟我一个C++入门的人,看不懂C语言的输出hhhhh,可能因为我比较差吧。个人感觉c的输出比较简单粗暴。
%f 格式化输出浮点型数据,在%之后加上“.n”即可。
例如:
#include <stdio.h> int main() { float PI=3.1415926; float R=5.1; printf("面积 = %.2f\n", PI * R * R); //输出:面积 = 81.71 printf("面积 = %f\n", PI * R * R); //输出:面积 = 81.712814 printf("面积 = %.8f\n", PI * R * R); //输出:面积 = 81.71281433 return 0; }
- %.2f\n中的“.2”即保留两位小数
- //不设定保留几位小数,则默认六位
如果单纯会用就行,看到这里就可以了!
-------------------------------------------------------------------------------------------------------------------------------
想深入理解的,继续看下面
1.首先解释一下“语句写一次就行了,对之后的数字都有效”。在s之后设置保留两位小数之后,重新声明另一个数,输出依旧显示两位小数。所以设置精度语句只需写一次就可以了。
1 #include <iostream> 2 #include <iomanip> //设置必备的头文件 3 using namespace std; 4 int main() 5 { 6 double s=12.345; 7 cout<<setiosflags(ios::fixed)<<setprecision(2); 8 cout<<s<<endl; //输出12.35 9 10 float pi=3.14159; 11 cout<<pi<<endl; //输出3.14 12 13 return 0; 14 }
2.setprecision(n)
功能:控制浮点数显示的有效数字个数。
3.fixed
setprecision(n)和fixed合用的话可以控制小数点后有几位。
只要加上以下任意一个语句就可以。
cout<<setiosflags(ios::fixed); cout.setf(ios::fixed); cout<fixed;
然后你会发现,如果你要保留的位数多于数字原来的小数,就会补上0。
加载全部内容