2010-12-03 85 views
48

如果我有49.967的浮点数并且我做了to_i,它会将其减少到49,这对于我使用磁盘空间分析.967超过了900mb的空间,在显示器中。将浮点数舍入到ruby中最接近的整数

是否有数字舍到最接近的整数的函数或我将不得不把它定义我自己是这样的:

class Float 
    def to_nearest_i 
    (self+0.5).to_i 
    end 
end 

,这样我可以那么做:

>> 5.44.to_nearest_i 
=> 5 
>> 5.54.to_nearest_i 
=> 6 
+0

你知道有Ruby的文档,对不对? http://ruby-doc.org/ruby-1.9/classes/Float.html#M000532 – 2010-12-03 17:01:29

+0

@glennmcdonald,您的链接已损坏。这里是2.20的新链接:http://ruby-doc.org/core-2.2.0/Float.html – Austin 2015-06-11 20:25:22

回答

95

尝试Float.round

irb(main):001:0> 5.44.round 
=> 5 
irb(main):002:0> 5.54.round 
=> 6 
相关问题