如何用ruby盖帽和圆形数字
我想用Ruby(on Rails)“限制”一个数字。
例如,作为一个函数的结果,我有一个浮点数,但我需要一个int。
我有非常具体的指示,这里有一些例子:
如果我得到1.5
我想要2
但是如果我得到2.0
我想要2
(而不是3
)
做number.round(0) + 1
行不通的。
我可以写一个函数来做到这一点,但我相信一个已经存在。
但是,如果它不存在,我应该在哪里创build我的帽子function?
试试ceil :
1.5.ceil => 2 2.0.ceil => 2
number.ceil
怎么number.ceil
?
这将返回大于或等于数字的最小整数。
要小心,如果你使用这个负数,确保它符合你的期望:
1.5.ceil #=> 2 2.0.ceil #=> 2 (-1.5).ceil #=> -1 (-2.0).ceil #=> -2
.ceil是好的,但请记住,即使是最小的浮点值也会导致:
a = 17.00000000000002 17.0 a.ceil 18
使用数字#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?