194 votes

Comment arrondir un flottant à deux décimales en JRuby ?

Comment arrondir un flottant à deux décimales dans JRuby(1.6.x) ?

number = 1.1164
number.round(2)

# The above shows the following error
# wrong number of arguments (1 for 0)

-16voto

Pour tronquer une décimale, j'ai utilisé le code suivant :

<th><%#= sprintf("%0.01f",prom/total) %><!--1dec,aprox-->
    <% if prom == 0 or total == 0 %>
        N.E.
    <% else %>
        <%= Integer((prom/total).to_d*10)*0.1 %><!--1decimal,truncado-->
    <% end %>
        <%#= prom/total %>
</th>

Si vous voulez tronquer à 2 décimales, vous devez utiliser Integr(a*100)*0.01

5 votes

Personne ne devrait JAMAIS faire cela lorsqu'il s'agit de lancer des pourcentages. C'est une mauvaise méthode car en tronquant, vous perdez la capacité d'arrondir correctement aux deux décimales les plus proches. Par exemple, si vous tronquez 0,455, vous obtenez 0,45, ce qui est une erreur d'arrondi car le résultat devrait être 0,46. Ne jamais tronquer une décimale, toujours arrondir le nombre, sinon le résultat sera faux lorsque l'arrondi vers le haut doit se produire.

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