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

标签 ruby

在 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/

相关文章:

javascript - Rails 4 - javascript 文件未在生产中加载但在本地运行良好。 (英雄)

c# - 自动化 Windows GUI 测试 - FindWindowEx 和控制类

ruby-on-rails - ActiveRecord 是否已经将手动查询包装到事务中?

mysql - 为什么 ruby​​ 检测不到无效编码而 mysql 检测到?

ruby - 绑定(bind)和解构 block 参数

ruby - Fixnum 未定义的方法新

ruby-on-rails - AXLSX 合并样式内的单元格

python - Ruby 和 Python 中的作用域

javascript - 如何在 ROR 中设置窗口名称?

ruby-on-rails - FIPS 模式导致 Ruby on Rails 应用程序因 MD5 摘要/openssl 问题而失败?