Tom*_*ond 8 ruby floating-point ruby-on-rails
我正在使用Ruby on Rails应用程序中的外部api.我需要在花车发送给这家公司,但他们只接受像值1.0,1.25,1.5,1.75,2.0,等.
我可能有像1.34或的价值1.80.理想情况下,我需要将它们四舍五入到最近0.25.实现这一目标的最佳方法是什么?如果我这样做1.34.round(0)会给我1.0比我需要的更低的东西.
谢谢!
And*_*eko 15
(1.27 * 4).round / 4.0
#=> 1.25
Run Code Online (Sandbox Code Playgroud)
如果你经常使用它,那么修补这个Float类是非常有意义的,这样可以简化用法:
class Float
def round_to_quarter
(self * 4).round / 4.0
end
end
1.27.round_to_quarter
#=> 1.25
1.52.round_to_quarter
#=> 1.5
1.80.round_to_quarter
#=> 1.75
1.88.round_to_quarter
#=> 2.0
Run Code Online (Sandbox Code Playgroud)