C++ 四捨五入

round (a):回傳 a 之小數經四捨五入後之值。
floor (a):回傳 a 之小數無條件捨去後之值。
ceil (a):回傳 a 之小數無條件進位後之值。

setprecision () 是輸入 / 輸出操縱器庫 的一個操作符,可以用來修改浮點數的預設精度。
使用 setprecision (n) 可控制輸出流顯示浮點數的數字個數。C++ 預設的流輸出數值有效位是 6。
如果 setprecision (n) 與 setiosflags (ios::fixed) 合用,可以控制小數點右邊的數字個數。
setiosflags (ios::fixed) 是用定點方式表示實數

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<cmath>
#include<iomanip> // 輸出流控制,setiosflags (ios::fixed),setprecision (n) 的標頭檔案
using namespace std;
int main ()
{
double n = 50.26548;
printf ("%.4f", n); cout << endl; // 列印輸出小數點後 4 位,會四捨五入

cout << setprecision (4) << n << endl;// 輸出 4 位有效數字,包括整數和小數部分,會四捨五入
cout << setiosflags (ios::fixed) << setprecision (4) << n << endl;// 輸出小數點後 4 位,會四捨五入,會影響後面的 setprecision () 輸出
cout << setprecision (4) << n << endl;// 只輸出小數點後 4 位,而不再是包括整數部分的 7 位,會四捨五入(但是此處受到前面影響,所以會輸出包含整數)

cout << setiosflags (ios::fixed) << setprecision (4)<< floor (n * 10000)/10000<< endl;// 不會四捨五入,保留幾位小數就乘和除 10 的幾次方
return 0;
}

C++ learing 总览

C++ 四舍五入
C++ 取出一個數的每一位
C++ 利用 rand () 產生隨機數
C++ 小知识点总结
C++ 解釋一個語句
C++ #include
C++ RALL
C++ 运算符
C++ 万能标头档
讓 Dev C++ 支持 C++11