如何用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?