Je n'arrive pas à trouver la réponse que je recherche à une question simple: comment 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, je voudrais que le résultat soit 1.
Jusqu'ici j'ai
int b = (int) Math.ceil(a / 100);
Cela ne semble pas faire le travail, cependant.
a
type entier.Réponses:
Math.ceil()
est la fonction correcte à appeler. Je suppose quea
c'est unint
, ce qui feraita / 100
effectuer l'arithmétique entière. EssayezMath.ceil(a / 100.0)
plutôt.Les sorties:
Voir http://ideone.com/yhT0l
la source
a
est unint
dans cet exemple, et cela fonctionne comme suggéré. Lorsque vous faitesint / float
le résultat est unfloat
, comme démontré dans la sortie. Essayez le lien.Je ne sais pas pourquoi vous divisez par 100 mais voici mon hypothèse
int a;
ou
la source
Cela semblait faire le travail parfait. A travaillé à chaque fois.
la source
10 ans plus tard, mais ce problème m'a encore pris.
Voilà donc la réponse à ceux qui sont trop tard comme moi.
Cela ne fonctionne pas
Parce que le résultat
a / 100
s'avère être un entier et qu'il est arrondi, donc Math.ceil ne peut rien y faire.Vous devez éviter l'opération arrondie avec ce
Maintenant ça marche.
la source
Le moyen le plus simple de le faire est simplement: vous recevrez un flotteur ou un double et vous voulez qu'il le convertisse en l'arrondi le plus proche, puis
System.out.println((int)Math.ceil(yourfloat));
il fonctionnera parfaitementla source
En supposant un double et nous avons besoin d'un nombre arrondi sans décimale. Utilisez la fonction Math.round ().
Cela va comme ma solution.
la source