Un chemin de ronde Flotte bas

Float round arrondit vers le haut ou vers le bas. J'ai toujours besoin d'arrondir à la baisse.

J'ai la solution mais je n'ai pas vraiment aimé... Peut-être il ya une meilleure façon.

C'est ce que je veux:

1.9999.round_down(2) 
#=> 1.99
1.9901.round_down(2)
#=> 1

Je suis venu avec cette solution, mais je voudrais savoir si il y a une meilleure solution(je n'aime pas que je convertir le flotteur deux fois). Il y a déjà une méthode pour cela? Parce que je l'ai trouvé assez étrange que je ne pourrais pas le trouver.

class Float
  def round_down(n=0)
    ((self * 10**n).to_i).to_f/10**n 
  end
end

Grâce.

J'aime votre solution...
Que voulez-vous faire avec des nombres négatifs? Vers l'infini négatif ou vers zéro?
Ce n'est pas exactement ce que vous voulez (comme vous aurez toujours perdre la partie décimale), mais si vous convertir un entier vous sera toujours arrondi à l'inférieur - 1.9901.to_i - peut être beaucoup mieux en fonction de votre scénario.

OriginalL'auteur Michael Koper | 2011-08-17