51 votes

arrondir un nombre à virgule flottante à la prochaine valeur entière en java

comment puis-je arrondir un nombre à virgule flottante à la prochaine valeur entière en Java ? Supposer

2.1 -->3

3.001 -->4

4.5 -->5

7.9 -->8

23voto

Jatin Points 308

essaye ça

 float a = 4.5f;

int d = (int) Math.ceil(a);

System.out.println(d);

10voto

JeffMeJones Points 344

J'ai eu le même problème où j'obtenais toujours la plus petite valeur int. C'était la division, pas le Math.ceil. Vous devez ajouter un lancer (flottant) aux ints. Voilà comment je l'ai corrigé :

 int totalNumberOfCachedData = 201;
int DataCountMax = 200;

float ceil =(float) totalNumberOfCachedData / (float)DataCountMax;
int roundInt = (int) Math.ceil(ceil);

Cela me donnera 2 pour la valeur de roundInt.

7voto

Lion Points 7328

Voir

 float a=10.34f,b=45.678f;

System.out.println((int)Math.ceil(a));
System.out.println((int)Math.ceil(b));

Sortir

 11
46

2voto

Ph0b0x Points 509

Si cela peut aider quelqu'un, voici comment cela fonctionne :

 int arraySize = 3;
int pageSize = 10;
int pagesQty = (int) Math.ceil(arraySize / (float) pageSize);

System.out.println(pagesQty);

//Displays 1

Le diviseur doit être un flotteur pour fonctionner correctement.

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