如何将 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
我已经给出了一些示例,说明我的问题陈述需要什么样的解决方案。
#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