2010-12-03 8 views
48

Si j'ai un flotteur de 49,967 et je ne .to_i il hachez jusqu'à 49 qui, pour mon utilisation de l'analyse de l'espace disque 0,967 est sur 900MB de l'espace qui ne sera pas représenté pour dans les affichages.Arrondir un flotteur à l'entier le plus proche de Ruby

est-il une fonction pour arrondir le nombre entier le plus proche ou devrais-je définir mon moi comme ceci:

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

pour que je puisse alors faire:

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

Vous savez qu'il y a du doc ​​pour Ruby, non? http://ruby-doc.org/ruby-1.9/classes/Float.html#M000532 –

+0

@glennmcdonald, votre lien est brisé. Voici un nouveau lien pour 2.20: http://ruby-doc.org/core-2.2.0/Float.html – Austin

+0

et est ici un lien vers [Float.round] (http://ruby-doc.org/ core-1.9.3/Float.html # method-i-round) – Austin

Répondre

95

Essayez Float.round .

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

A la vôtre, je savais qu'il devait y avoir quelque chose en ruby ​​pour le faire – Arcath

Questions connexes