Art*_*hur 40 ruby ruby-on-rails
我想在Ruby中"封顶"一个数字(在Rails上).
例如,作为函数的结果,我有一个浮点数,但我需要一个int.
我有非常具体的说明,这里有一些例子:
如果我得到1.5我想2但如果我得到2.0我想要2(而不是3)
做number.round(0) + 1不行.
我可以编写一个函数来执行此操作,但我确信已经存在.
但是,如果它不存在,我应该在哪里创建我的上限函数?
gno*_*ice 78
尝试ceil:
1.5.ceil => 2
2.0.ceil => 2
Run Code Online (Sandbox Code Playgroud)
Pat*_*ald 11
怎么样number.ceil?
这将返回大于或等于number的最小Integer.
如果您使用负数,请小心,确保它符合您的预期:
1.5.ceil #=> 2
2.0.ceil #=> 2
(-1.5).ceil #=> -1
(-2.0).ceil #=> -2
Run Code Online (Sandbox Code Playgroud)
mes*_*600 11
.ceil很好,但请记住,即使float中的最小值也会导致:
a = 17.00000000000002
17.0
a.ceil
18
Run Code Online (Sandbox Code Playgroud)
使用数字#ceil:
irb(main):001:0> 1.5.ceil
=> 2
irb(main):002:0> 2.0.ceil
=> 2
irb(main):003:0> 1.ceil
=> 1
Run Code Online (Sandbox Code Playgroud)