c 四捨五入函式,向上取整,向下取整函式

2021-10-01 07:01:48 字數 2244 閱讀 7451

對含有小數點的數進行四捨五入是比較普遍的一種需求。在c++中也有類似的取整函式。在c++的標頭檔案中有floor()和ceil()函式。在stl中還有round()函式。這三個函式的作用如下:

函式名稱 函式說明 2.1 2.9 -2.1 -2.9

floor() 不大於自變數的最大整數 2 2 -3 -3

ceil() 不小於自變數的最大整數 3 3 -2 -2

round() 四捨五入到最鄰近的整數 2 3 -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()函式,才是我們需要的四捨五入的函式,因為它會返回離自變數最近的整數,這個返回的整數可能大於也可能小於原來的數,但是一定是離它最近的那個整數。

double floor (double x);

float floor (float x);

long double floor (long double x);

double floor (t x); // additional overloads for integral types

/* floor example */

#include

/* printf */

#include

/* floor */

int main (

)

output:

floor of 2.3 is 2.0

floor of 3.8 is 3.0

floor of -

2.3 is -

3.0floor of -

3.8 is -

4.0

double ceil (double x);

float ceil (float x);

long double ceil (long double x);

double ceil (t x); // additional overloads for integral types

/* ceil example */

#include

/* printf */

#include

/* ceil */

int main (

)

output:

ceil of 2.3 is 3.0

ceil of 3.8 is 4.0

ceil of -

2.3 is -

2.0ceil of -

3.8 is -

3.0

double round (double x);

float round (float x);

long double round (long double x);

double round (t x); // additional overloads for integral types

/* round vs floor vs ceil vs trunc */

#include

/* printf */

#include

/* round, floor, ceil, trunc */

int main (

)

output:

value round floor ceil trunc

-------

----------

-------

2.32.0

2.03.0

2.03.8

4.03.0

4.03.0

5.56.0

5.06.0

5.0-

2.3-

2.0-

3.0-

2.0-

2.0-

3.8-

4.0-

4.0-

3.0-

3.0-

5.5-

6.0-

6.0-

5.0-

5.0

PHP取整,四捨五入,向上取整,向下取整

1 四捨五入取整 round value1,value2 value2預設為0 round 24.1 24 round 24.5 25 round 24.5,0 25 round 24.55321,1 24.6 round 24.55321,2 24.55 round 24489.55321,2 2...

js 向上取整 向下取整 四捨五入

1.只保留整數部分 丟棄小數部分 parseint 5.1234 5 2.向下取整 該數值的最大整數 和parseint 一樣 math.floor 5.1234 5 3.向上取整 有小數,整數就 1 math.ceil 5.1234 4.四捨五入 小數部分 math.round 5.1234 5m...

js 向上取整 向下取整 四捨五入

1.只保留整數部分 丟棄小數部分 parseint 5.1234 5 2.向下取整 該數值的最大整數 和parseint 一樣 math.floor 5.1234 5 3.向上取整 有小數,整數就 1 math.ceil 5.1234 6 4.四捨五入 小數部分 math.round 5.1234 ...