如何将 ruby 中的浮点值四舍五入到百分之一?

How to round up float value to hundredth value in ruby?

我已经给出了一些示例,说明我的问题陈述需要什么样的解决方案。

#I want this solution
#Example - 

120.21 => 200.0
51.12 => 100.0
1.0 => 100.0
1.5 => 100.0
122100.51 => 200000.0 #Consider this best case

你的要求我不是很清楚。但对我来说就像你

  • 总是想四舍五入到最接近的百位
  • 但如果数字已经超过 999,那么您只想四舍五入到下一个看起来不错的数字。
  • 而且,尽管您对数字进行了四舍五入,您仍然希望 return 一个浮点数而不是一个整数。

MIN_DIGITS_TO_ROUND = 2

def ceil_plus(float)
  digits = [Math.log10(float), MIN_DIGITS_TO_ROUND].max
  float.ceil(-digits).to_f
end

ceil_plus(120.21)    #=> 200.0
ceil_plus(51.12)     #=> 100.0
ceil_plus(1.0)       #=> 100.0
ceil_plus(1.5)       #=> 100.0
ceil_plus(122100.51) #=> 200000.0