c++的四捨五入函式比較
對含有小數點的數進行四捨五入是比較普遍的一種需求。在c++中也有類似的取整函式。在c++的標頭檔案中有floor()和ceil()函式。在stl中還有round()函式。這三個函式的作用如下:
函式名稱
函式說明
2.12.9
-2.1
-2.9
floor()
不大於自變數的最大整數22
-3-3
ceil()
不小於自變數的最小整數33
-2-2
round()
四捨五入到最鄰近的整數23
-2-3
從函式說明中可以看出,
(1) floor()會取不大於自變數的最大整數,這樣自變數是3.1或3.9是沒有區別的,返回都是3;自變數是-2.1或-2.9也是沒有區別的,返回都是-3;
(2) ceil()會取不小於自變數的最大整數,這樣自變數是3.1或3.9,返回都是4;自變數是-2.1或-2.9,返回的都是-2;
(3) round()函式,才是我們需要的四捨五入的函式,因為它會返回離自變數最近的整數,這個返回的整數可能大於也可能小於原來的數,但是一定是離它最近的那個整數。
注:floor(), ceil()函式都包含在標頭檔案「math.h」中,但是round()函式未包含在該標頭檔案中。因此可以通過以上的原理,來自己實現round()函式,實現含有小數的數字的四捨五入。
**實現一:
int round_double(double number)
**實現二:
int round_double(double number)
c 四捨五入
在處理一些資料時,我們希望能用 四捨五入 法實現,但是c 採用的是 四捨六入五成雙 的方法,如下面的例子,就是用 四捨六入五成雙 得到的結果 double d1 math.round 1.25,1 1.2double d2 math.round 1.24,1 1.2double d3 math.ro...
c 四捨五入
math.round跟conver.toint32一樣,都是使用四捨六入五成雙的規則,例如 math.round 3.2 返回3 math.round 3.6 返回4 math.round 3.5 返回4 math.round 2.5 返回2 要做到四捨五入,可加上引數midpointroundin...
C 四捨五入
在處理一些資料時,我們希望能用 四捨五入 法實現,但是c 採用的是 四捨六入五成雙 的方法,如下面的例子,就是用 四捨六入五成雙 得到的結果 double d1 math.round 1.25,1 1.2double d2 math.round 1.24,1 1.2double d3 math.ro...