J'ai du mal à arrondir. J'ai un flotteur, que je veux arrondir au centième de décimale. Cependant, je ne peux utiliser .round
que ce qui le transforme en un int, ce qui signifie 2.34.round # => 2.
existe-t-il un moyen d'effet simple de faire quelque chose comme2.3465 # => 2.35
ruby-on-rails
ruby
rounding
user211662
la source
la source
sprintf '%.2f', 2.3465
fonctionne également.2.3000.round(2) => 2.3
etsprintf '%.2f', 2.300 => 2.30
. À mon avis, c'est une faille dans round (), ou il devrait avoir une option pour conserver les zéros de fin.2.3000.round(2)
est un nombre, pas une chaîne. Il n'y a aucun moyen que le nombre2.3
soit différent de2.30
, il n'y a donc aucun moyen d'avoir une option pour conserver les zéros de fin. Vous pouvez créer votre propre classe de nombres_avec_signifiance, mais nous avons déjà des chaînes.'%.3f' % 1.2345
(3 décimales, pas 2), cependant !! Idem poursprintf
aussi. Il faut se méfier. Cela ne reviendra=> 1.234
pas=> 1.235
comme la plupart des gens s'y attendraient (iow, après la 2ème décimale, sprintf arrondit 5 vers le bas et arrondit seulement un 6 vers le haut). C'est pourquoi le commentaire de Kit Ho ci-dessus a plus de 25 votes positifs. Plus sûr à utiliser,'%.3f' % 1.2345.round(3)
le nombre est donc correctement arrondi en.round
premier, puis formaté (avec des zéros à la fin, si nécessaire).Passez un argument à arrondir contenant le nombre de décimales à arrondir
la source
1.1.round(2)
=>1.1
pas1.10
vous pouvez l'utiliser pour arrondir à une précision.
la source
Vous pouvez ajouter une méthode dans Float Class, j'ai appris cela de stackoverflow:
la source
Vous pouvez également fournir un nombre négatif comme argument à la
round
méthode pour arrondir au multiple le plus proche de 10, 100 et ainsi de suite.la source
la source
et quoi
(2.3465*100).round()/100.0
?la source
Si vous avez juste besoin de l'afficher, j'utiliserais l' assistant number_with_precision . Si vous en avez besoin ailleurs, j'utiliserais, comme l'a souligné Steve Weet, la
round
méthodela source
number_with_precision
c'est la méthode Rails uniquement.Pour ruby 1.8.7, vous pouvez ajouter ce qui suit à votre code:
la source