ruby-on-rails - 什么样的数据类型可以四舍五入?

标签 ruby-on-rails ruby

我目前正在尝试对一个 float 进行四舍五入,但我收到一条错误消息,例如:undefined method round_to for float 16.666667.. 我的四舍五入代码是

  option = [keys[count],    (((o.poll_votes.count.to_f)/@general_poll.poll_votes.count.to_f)*100).round_to(1)]

最让我吃惊的是,我已经在多个地方使用过这段代码并且工作正常..但现在却出现错误。

提前致谢。

最佳答案

round_to 方法在 ruby​​ 核心中不存在。此功能很可能包含在您之前使用的库中,但您当前的项目中不需要它。快速搜索后,该功能似乎包含在 Ruby Facets 库中。

gem install facets 

查看这篇文章以自行添加此功能:http://www.hans-eric.com/code-samples/ruby-floating-point-round-off/

自由贸易协定:

通过小猴子修补,我们可以向 Float 类添加自定义舍入方法。

class Float
  def round_to(x)
    (self * 10**x).round.to_f / 10**x
  end

  def ceil_to(x)
    (self * 10**x).ceil.to_f / 10**x
  end

  def floor_to(x)
    (self * 10**x).floor.to_f / 10**x
  end
end

---------------- 剪辑 8<--------------------

关于ruby-on-rails - 什么样的数据类型可以四舍五入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1131466/

相关文章:

ruby-on-rails - 我在哪里可以将 Swagger-UI 放在带有 Grape 的 Rails 应用程序中?

ruby-on-rails - Rails : import timestamps, 不同时区和夏令时

ruby-on-rails - Rails 应用程序之间的通信

javascript - JavaScript 中的 Rails 哈希,访问值

ruby-on-rails - 如何使用访问 token 在 Github 上使用 GET 和 POST?

ruby-on-rails - rails 3 : scope is not true

ruby-on-rails - docker-compose.yml不适用于Rails应用程序

ruby-on-rails - Cucumber、VCR gem 和 chrome 驱动程序不能一起工作

ruby - 赋值运算符真的是 "just"运算符吗?

ruby-on-rails - 执行 'case' 语句以匹配多个 'when' 条件