2010-12-03 29 views
48

Eğer bir 49.967 yüzüğüm varsa ve .to_i yaparsam, bunu disk alanı analizimi kullanmam için 49'a düşürürüm .967, hesaplanamayan 900mb'den fazla alan Ekranlarda için.Yakutu en yakın tam sayıya yuvarlama

en yakın tam sayıya sayıları yuvarlamak için bir işlevi var mı ya da ben böyle bildiğim kendini tanımlamak gerekir:

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

yüzden sonra yapabileceği:

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

Ruby için bir doktor olduğunu biliyorsunuz, değil mi? http://ruby-doc.org/ruby-1.9/classes/Float.html#M000532 –

+0

@glennmcdonald, bağlantınız kesildi. İşte 2.20 için yeni bir link: http://ruby-doc.org/core-2.2.0/Float.html – Austin

+0

ve burada [Float.round] (http://ruby-doc.org/ adresine bir bağlantı var. core-1.9.3/Float.html # yöntem-i-yuvarlak) – Austin

cevap

95

Float.round deneyin .

irb(main):001:0> 5.44.round 
=> 5 
irb(main):002:0> 5.54.round 
=> 6 
+0

Şerefe, bunu yapmak için yakutta bir şey olması gerektiğini biliyordum – Arcath