我目前正在尝试舍入一个浮点数,但我得到一个错误消息,如: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)]
最让我感到惊讶的是,我在几个地方使用过这段代码并且工作正常......但现在却给了我错误。
提前感谢。
答案 0 :(得分:4)
方法round_to在ruby核心的任何地方都不存在。很可能这个功能包含在您之前使用的库中,但在当前项目中并不需要它。快速搜索后,看起来这个功能包含在Ruby Facets库中。
gem install facets
请查看此文章以自行添加此功能:http://www.hans-eric.com/code-samples/ruby-floating-point-round-off/
FTA:
通过一点猴子修补,我们可以为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
------------------ snip 8< -------------------