從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。