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 ...