Ruby:根据任意数字列表将数字舍入到最接近的数字

标签 ruby arrays rounding

假设我有一个整数数组:

arr = [0,5,7,8,11,16]

我还有另一个整数:

n = 6

我需要一个函数来向下舍入到数组中最接近的数字:

foo(n) #=> 5

如您所见,数字没有固定的模式。执行此操作的优雅方法是什么?

谢谢

最佳答案

使用select其次是 max :

arr = [0,5,7,8,11,16]
puts arr.select{|item| item < 6}.max

结果:

5

这在线性时间内运行,不需要对数组进行排序。

关于Ruby:根据任意数字列表将数字舍入到最接近的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3160502/

相关文章:

ruby - 从 powershell 调用 ruby​​ 脚本

php - 检测页面是否被机器人访问

assembly - x87 可以对 UNsigned QUADword 整数执行精确除法吗?

ruby - 编码默认为 ASCII-8BIT

ruby-on-rails - Action 邮件 SMTP google apps

ruby - #<EventManager :0x007fa4220320c8> (NoMethodError) 的未定义方法 `output_data'

c - 如何遍历一个数组并在C中找到所有可达点?

javascript - 文档数据库 : How to filter document on array within array?

c - C语言中如何截去小数而不进行四舍五入

math - golang 舍入到最近0.05