我觉得自己像个疯子.我想把所有分数四舍五入到最接近的整数.

例如,67/30=2.233334.我想把这四舍五入到3.如果结果不是整数,我永远不想向下取整,只想向上取整.

这就是我要try 的:

puts 67/30.to_f.ceil

以下是我正在寻找的例子:

  • 67/30 = 3
  • 50/100 = 1
  • 2/2 = 1

有什么 idea 吗?多谢!

推荐答案

问题是你现在拨打的是30.to_fceil.下面是Ruby如何判断它:

(67)/(30.to_f.ceil)
# .ceil turns the float into an integer again
(67)/(30.0.ceil)
# and now it's just an integer division, which will be 2
67/30 # = 2

要解决这个问题,只需添加括号:

puts (67/30.to_f).ceil  # = 3

Ruby相关问答推荐

R10K模块在try 安装gem r10k时获得错误的Ruby版本

Ruby将字符串中的反斜杠替换为双反斜杠

如何将包含换行符(和可能其他特殊字符)的Ruby字符串转义为有效的shell变量值?

如何在加载文件时禁用重新定义常量的警告

从单独的文件中包含一个 Ruby 类

在 YAML 变量中包含 jekyll / liquid 模板数据?

如何在没有继承方法的情况下获取类的公共方法?

我如何 expect期望在 RSpec 中引发异常的东西?

如何使用 RVM 重新编译 ruby​​?

rails 控制台、RVM 和 readline 的问题

如何在 ruby​​ 中解压缩 Gzip 字符串?

. vs ::(点与双冒号)用于调用方法

将Elastic search限制设置为无限制

如何在 Ruby 中做标准差?

Ruby 中的=~运算符是什么?

Ruby Style:如何判断嵌套的哈希元素是否存在

如何重命名 gemset?

如何在Ruby中将字符串拆分为仅具有给定字符的两部分?

Ruby 的 %q / %Q 引用方法的用例是什么?

Ruby 中的那些管道符号是什么?