2010-10-14 5 views
2

Je veux arrondir une valeur double à son plus proche de 0,05 en java. par exemple: 54,625 à 54,65comment arrondir une valeur double à 0,05 en java

ou

32,1885 à 32,19 etc.

+0

duplication possible de [décimal rond à 10ème près] (http://stackoverflow.com/questions/1887826/round-decimal-to-nearest-10th) –

+0

http://stackoverflow.com/questions/2235814/rounding -a-decimal-to-the-nearest-0-05 –

+0

http://stackoverflow.com/questions/2857497/roundoff-double-values-in-java –

Répondre

1
double foo = 54.625; 
foo = (int)(foo * 20.0 + 0.5)/20.0; 

C'est rapide et sale - il ne gère pas correctement les nombres négatifs, par exemple. Mais pour des problèmes simples, c'est une solution simple.

+0

ce round arrondit au 0.01 le plus proche et il peut obtenir un arrondi erro dans la division. –

+0

paul la solution ci-dessus fonctionne. mais il donne la sortie 16.490000000000002 au lieu de 16.49. comment puis-je le tronquer ?? – meenakshi

+1

Shilpa, c'est ainsi que fonctionnent les nombres à virgule flottante. Si vous voulez une sortie exacte, utilisez BigDecimal. –

Questions connexes