我目前正试图舍入一个浮点数,但我收到一条错误消息,比如:未定义的方法round_to for float 16.66666 7我的取整代码是

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

最让我吃惊的是,我已经在几个地方使用了这段代码,并且运行得很好……但是现在却给了我错误。
提前谢谢。

最佳答案

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/

10-10 14:53
查看更多