C語言取整方法總結

2021-07-03 23:29:32 字數 1218 閱讀 8773

int i = 3.5; 或 i = (int) 3.5;

這種方法採用的是捨去小數部分。

『 / 』本身就有取整功能(int / int),但是整數除法對負數的取整結果和使用的c編譯器有關。

floor(x)返回的是小於或等於x的最大整數。如:

floor(3.5) = 3

floor(-3.5) = -4

ceil(x)返回的是大於x的最小整數。如:

ceil(3.5) = 4

ceil(-3.5) = -3

floor()是向負無窮大捨入,floor(-3.5)  = -4;

ceil()是向正無窮大捨入,ceil(-3.5)  = -3。

但是在c裡面ceil和floor()函式是返回double

型。在網上發現乙個簡單的向上取整方法;

這裡我們用<>表示向上取整,表示向下取整,我們可以證明:

= [(n-1)/m]+1    (0 < m <= n   m,n∈z)

不失一般性,我們設n = mk+r (0 <= r < m,k∈z),

(1)當r > 0時,

左邊:= <(mk+r)/m >= = k+= k+1

右邊:[(n-1)/m]+1 = [(mk+r-1)/m]+1 = [k+(r-1)/m]+1 = k+1+[(r-1)/m]=k+1

(2)當r = 0時,

左邊:= k

右邊:

[(n-1)/m]+1 = [(mk-1)/m]+1 = [(m(k-1)+m-1)/m]+1

= [k-1+(m-1)/m]+1 = k+[(m-1)/m]

= k

綜上,命題得證。

有了這個公式,我們在**裡可以這樣計算:

int nn = (n-1)/m +1

式中' / '是往下取整的。

c語言取整方法

實驗環境 vc6.0 1 使用int強制轉換 使用int強制轉換的結果就是去掉小數部分。int a a int 1.2 a 1 a int 1.2 a 1 2 使用floor函式向下取整 使用floor函式的結果是向下取整,即得到比該數小的最大整數,需要包含標頭檔案math.h in a a flo...

C語言取整方法

int i 3.5 或 i int 3.5 這樣的方法採用的是捨去小數部分。本身就有取整功能 int int 可是整數除法對負數的取整結果和使用的c編譯器有關。floor x 返回的是小於或等於x的最大整數。如 floor 3.5 3 floor 3.5 4 ceil x 返回的是大於x的最小整數。...

C語言取整方法

3.使用floor函式 4.使用ceil函式 5.使用round函式 作用 使用該方法是將小數部分去除。int i 3.5 或i int 3.5 作用 使用整數除法運算也是將小數部分除去。int int 根據c語言的特性,是去除小數部分的 四捨五入裡的四捨是 1 2 3 4,五入是 5 6 7 8 ...