在 Ruby 中如何将数字四舍五入到最接近的 9?
我想要的效果是,如果一个数字是 22.22
,它将向下舍入为 19
。如果一个数字是 26.34
,它将四舍五入为 29
有什么想法吗?
谢谢
最佳答案
不幸的是,float 的 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
关于ruby - 如何在 Ruby 中将数字四舍五入到最接近的 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31419506/