C / C++ 保留小數函數(setprecision(n)的一些用法總結)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM