史上最簡潔的向上取整(機房重構知識點總結)

2021-06-22 13:38:44 字數 486 閱讀 5391

在機房收費系統的基本資料設定中,有乙個單位遞增時間,這就需要我們滿足如下需求:

假如遞增單位時間是5,那麼需要實現如下的效果:

5-->5

6-->10

7-->10

11-->15

我們一步一步來,先看乙個簡單的例子:

2.0-->2

2.1-->3

2.4-->3

2.6-->3

我開始用的取整,然後加1,結果帶有小數的可以達到目的,但這會讓2.0變為3,怎麼辦呢?abs(int(-x)),先轉換為負數,取整後再變為正數即可。因為int(),會讓乙個浮點數取為比本身小的整數,2.6變為2,-2.6則會變為-3。

有這個為基礎,機房的需求也迎刃而解,abs(int(-6/5))*5=10。方法很簡潔,因為自己第一次做機房忽略了,特總結出來警示自己。

向上取整與向下取整

向下取整的運算稱為floor,用數學符號 表示,與之相對的,向上取整的運算稱為ceiling,用數學符號 表示。c語言定義的取整運算既不是floor也不是ceiling,無論運算元是正是負總是把小數部分截斷 truncate 所以當運算元為正的時候相當於floor,當操作符為負的時候相當於ceili...

int向下取整 向上取整

原題點這裡 這道題主要考察的是排序,有個方便的方法就是定義乙個結構體,儲存每個志願者的報名號和筆試分數,然後定義乙個排序就ok了 值得注意的是,題目裡有乙個要求是取給定人數 150 向下取整 的分數作為面試分數線,這裡順便提一下c 裡面的兩個取整函式 地板函式 floor 和天花板函式 ceil 舉...

oracle 向上取整 向下取整

oracle對向上取整,向下取整,四捨五入取整都提供了函式 ceil函式實現向上取整 floor trunc實現向下取整 round實現四捨五入取整 ceil 向上取整,也就是取最接近待取整的數a,並且大於或等於a select ceil 10.12 from dual 返回11 select ce...