我想在Ruby中使用「上限」代碼(在Rails上)。如何使用紅寶石代碼和圓形數字
例如,作爲一個函數的結果,我有一個浮點數,但我需要一個int。
我有非常具體的說明,這裏有一些例子:
如果我得到1.5
我想2
但如果我2.0
我想2
(而不是3
)
做number.round(0) + 1
將無法正常工作。
我可以寫一個函數來做到這一點,但我相信一個已經存在。
但是,如果它不存在,我應該在哪裏創建我的帽子功能?
我想在Ruby中使用「上限」代碼(在Rails上)。如何使用紅寶石代碼和圓形數字
例如,作爲一個函數的結果,我有一個浮點數,但我需要一個int。
我有非常具體的說明,這裏有一些例子:
如果我得到1.5
我想2
但如果我2.0
我想2
(而不是3
)
做number.round(0) + 1
將無法正常工作。
我可以寫一個函數來做到這一點,但我相信一個已經存在。
但是,如果它不存在,我應該在哪裏創建我的帽子功能?
嘗試ceil:
1.5.ceil => 2
2.0.ceil => 2
number.ceil
怎麼樣?
這將返回大於或等於數字的最小整數。
要小心,如果你正在使用這個負數,請確保它你所期望的:
1.5.ceil #=> 2
2.0.ceil #=> 2
(-1.5).ceil #=> -1
(-2.0).ceil #=> -2
使用Numeric#ceil:
irb(main):001:0> 1.5.ceil
=> 2
irb(main):002:0> 2.0.ceil
=> 2
irb(main):003:0> 1.ceil
=> 1
float.ceil是你想要的正數。一定要考慮負數的行爲。也就是說,你是否希望-1.5將「cap」設置爲-1或-2?
.ceil是好的,但要記住,在浮子甚至最小的值將導致此:
a = 17.00000000000002
17.0
a.ceil
18
1.1.ceil => 2(另一實例) – Patrick 2014-03-08 04:33:06