✔ 最佳答案
1. CEILING(number,significance) and ROUNDUP(number,num_digits)
ROUNDUP(number,num_digits) - 無條件進位
number 係你想要做 rounding 的值;num_digits 係你想要準確到小數後幾多位;
Roundup(1.1,0) = 2
Roundup(-1.1,0) = -2
Roundup(1.23456,2) = 1.24
Roundup(123456789, -2) = 123456800 ( num_digits 負數就代表準確到小數前幾個位了)
CEILING(number,significance)
number 係你想要做 rounding 的值;significance 係一個倍數
Ceiling 其實係 roundup 概念再加以延伸,你可以想像 roundup 只係對 10 既子數做,而 ceiling 就可以對任何數做。請看以下例子
ceiling(1.123, 1) = 2 (這裡我地做既係搵 1 既倍數,又剛剛大過1.123既,所以就係 2)
ceiling(1.123, 0.1) = 1.2 (這裡是搵 0.1 既倍數,又大過1.123既,就係 1.2)
ceiling(3.123, 0.5) = 3.5 (這裡就係特別既地方了,唔一定要對 100,10,1,0.1,0.01 做 rounding,可以對 0.5 做 rounding)
ceiling(3.678, 0.5) = 4 ( 搵 0,5 既倍數大過 3.678既,就係 4 了)
ceiling 其實十分有用,例如係外國超市既價錢牌,係每 0.05 (即係 5 cents) 咁跳既,0.60, 0.65, 0.70, 0.75....佢地唔會無拿拿標價 6.71 咁樣樣的,所以 ceiling 就可以幫佢地 round up 到最接近既 5 cents 價錢了。
另一個又係常用既例子係,你去飲,以一圍一圍計,不足一圍亦要比一圍錢,所以你計圍數,又可以用 ceiling,例如 45 人去,你就要訂
ceiling(45, 12) / 12 = 48 /12 = 4 圍
ceiling 同 roundup 的進一步比較
ceiling(1.5,1) = roundup(1.5,0) = 2
ceiling(1.2345, 0.01) = roundup(1.2345,2) = 1.24
ceiling(3456, 100) = roundup(3456,-2) = 3500
而 rounddown 同 floor 呢,就同 roundup 同 ceiling 既關係一樣。
所以 ceiling 係唔係好玩過 roundup 好多好多呢,而且我好鐘意 ceiling 同 floor 個名,改得十分貼切呢,嘿嘿,所以即使我明知道要做 round up,有時我都會唔覺意咁用左 ceiling。
希望你滿意啦... ^.^
2007-11-15 16:31:42 補充:
又好似你之前見到別人既例子,點解我會用 ceiling 而唔用 roundup 呢?因為佢剛好係每 100 人 $75,所以其實用 roundup 都得,但係如果萬一將來改左做每 95 人 $75 又或者每 105 人 $75 呢?那 roundup 就完全用唔著了,如果用左 ceiling,就只要改少少野條 function 就用得返了。希望唔會令你混淆左啦... ^.^