我怎样才能在红宝石中四舍五入,所以最后两个数字是空的?例如
4233.000001 to 4300
52825 to 52900
627444 to 627500
111999 to 112000
?
现在我只能通过round(-2)在数学规则中四舍五入,但是如何才能做得更高,并且最后只有2个null?
我怎样才能在红宝石中四舍五入,所以最后两个数字是空的?例如
4233.000001 to 4300
52825 to 52900
627444 to 627500
111999 to 112000
?
现在我只能通过round(-2)在数学规则中四舍五入,但是如何才能做得更高,并且最后只有2个null?
你应该使用ceil
def my_round a
(a / 100.0).ceil * 100
end
my_round 4233.000001 # => 4300
my_round 52825 # => 52900
my_round 627444 # => 627500
my_round 111999 # => 112000
根据 Sergio 的回答,您可以将模块混合到实际Numeric
对象中以获得更通用的解决方案:
module RoundsUp
def round_up(ndigits)
pow_ten = 10 ** -ndigits
(self / pow_ten.to_f).ceil * pow_ten
end
end
然后
mynumeric = 262.33
mynumeric.extend(RoundsUp)
mynumeric.round_up(-2) #=> 300
你有一个方法,round
对于任意位数的行为都像正常的一样