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語言取整方法
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 ...
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的最小整數。如...