60 votes

Définir la précision d'affichage d'un float en Ruby

Est-il possible de définir la précision d'affichage d'un float en Ruby?

Quelque chose comme:

 z = 1/3
z.to_s    #=> 0.33333333333333
z.to_s(3) #=> 0.333
z.to_s(5) #=> 0.33333
 

Ou dois - je remplacer le to_s méthode de Float ?

90voto

DrewB Points 878

z.round (2) ou x.round (3) est la solution la plus simple. voir http://www.ruby-doc.org/core-1.9.3/Float.html#method-i-round .

Cela dit, cela ne fera que garantir que le nombre de chiffres est limité. dans le cas d'un tiers, c'est bien, mais si vous aviez dit 0.25.round (3), vous obtiendrez 0,25 et non 0,250.

48voto

Andreas Bonini Points 15709

Vous pouvez utiliser sprintf:

 sprintf( "%0.02f", 123.4564564)
 

36voto

DigitalRoss Points 80400

Je ferais normalement juste la conversion en code ouvert, quelque chose comme:

 puts "%5.2f" % [1.0/3.0] 
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X