truncar round redondear numeros float decimales java integer floating-point number-rounding

round - redondear un número de coma flotante al siguiente valor entero en java



redondear float java (6)

¿Cómo puedo redondear un número de coma flotante al siguiente valor entero en Java? Suponer

2.1 -> 3

3.001 -> 4

4.5 -> 5

7.9 -> 8


Deberías ver el redondeo del techo en los paquetes matemáticos de Java: Math.ceil

EDITAR: Agregó el javadoc para Math.ceil. Puede valer la pena leer todo el método en Matemáticas.

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#ceil%28double%29

public static double ceil(double a)

Devuelve el valor doble más pequeño (más cercano al infinito negativo) que es mayor o igual que el argumento y es igual a un número entero matemático. Casos especiales:

  • Si el valor del argumento ya es igual a un entero matemático, el resultado es el mismo que el argumento.
  • Si el argumento es NaN o un infinito o cero positivo o cero negativo, entonces el resultado es el mismo que el argumento.
  • Si el valor del argumento es menor que cero pero mayor que -1.0, entonces el resultado es cero negativo.

Tenga en cuenta que el valor de Math.ceil(x) es exactamente el valor de -Math.floor(-x) .


Estoy usando esto:

public static int roundDoubleToUpperInt(double d){ return (d%1==0.0f)?(int)d:(int)(d+1); }


Si ayuda a alguien, así es como lo hago funcionar:

int arraySize = 3; int pageSize = 10; int pagesQty = (int) Math.ceil(arraySize / (float) pageSize); System.out.println(pagesQty); //Displays 1

Divisor debe ser un flotador para funcionar correctamente.


Tuve el mismo problema cuando aún obtenía el valor int más pequeño. Era la división, no el Math.ceil. Tienes que agregar un molde (float) a los ints. Así es como lo arreglé:

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

Esto me dará 2 por el valor de roundInt.


Ver

float a=10.34f,b=45.678f; System.out.println((int)Math.ceil(a)); System.out.println((int)Math.ceil(b));

Salida

11 46


prueba esto

float a = 4.5f; int d = (int) Math.ceil(a); System.out.println(d);