如何在Ruby中将数字四舍五入到最接近的9?
我想要的效果是,如果一个数字是22.22
,它会向下舍入到19
。如果某个数字为26.34
,则会转到29
有什么想法吗?
由于
答案 0 :(得分:3)
不幸的是,float for的round()方法有很多语法糖用于舍入到最接近的整数。人们可以建立自己的方法 -
此方法假设所有数字均为正数。为了便于阅读,我建议你将这个复杂的数值计算包装成一个方法,其名称指的是它正在做什么。
def round_to_nearest_9(num)
((num + 1) / 10).round * 10 - 1
end
如果您不想假设输入数字是正数:
def round_to_nearest_9(num)
if num < 0
return ((num - 1) / 10).round * 10 + 1
else
return ((num + 1) / 10).round * 10 - 1
end
end