如何在Ruby中将数字舍入到最接近的9

时间:2015-07-15 00:17:27

标签: ruby

如何在Ruby中将数字四舍五入到最接近的9?

我想要的效果是,如果一个数字是22.22,它会向下舍入到19。如果某个数字为26.34,则会转到29

有什么想法吗?

由于

1 个答案:

答案 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