web-dev-qa-db-fra.com

Java Arrondir un nombre quelconque

Je ne semble pas pouvoir trouver la réponse que je cherche concernant une question simple: comment puis-je arrondir un nombre au plus proche int?

Par exemple, chaque fois que le nombre est 0,2, 0,7, 0,2222, 0,4324, 0,99999, j'aimerais que le résultat soit égal à 1.

Jusqu'ici j'ai

int b = (int) Math.ceil(a / 100);

Cela ne semble pas faire le travail, cependant.

131
Stevanicus

Math.ceil() est la fonction correcte à appeler. J'imagine que a est un int, ce qui obligerait a / 100 à effectuer un calcul arithmétique entier. Essayez Math.ceil(a / 100.0) à la place.

int a = 142;
System.out.println(a / 100);
System.out.println(Math.ceil(a / 100));
System.out.println(a / 100.0);
System.out.println(Math.ceil(a / 100.0));
System.out.println((int) Math.ceil(a / 100.0));

Les sorties:

1
1.0
1.42
2.0
2

Voir http://ideone.com/yhT0l

258
marcog

Je ne sais pas pourquoi vous divisez par 100, mais voici mon hypothèse int a;

int b = (int) Math.ceil( ((double)a) / 100);

ou

int b = (int) Math.ceil( a / 100.0);
15
user467871
int RoundedUp = (int) Math.ceil(RandomReal);

Cela semblait faire le travail parfait. Travaillé à chaque fois.

10
Liehan Els