Parece que no puedo encontrar la respuesta que estoy buscando con respecto a una pregunta simple: ¿cómo redondeo cualquier número al más cercano int
?
Por ejemplo, siempre que el número sea 0.2, 0.7, 0.2222, 0.4324, 0.99999, me gustaría que el resultado sea 1.
Hasta ahora tengo
int b = (int) Math.ceil(a / 100);
Sin embargo, no parece estar haciendo el trabajo.
a
tiene el tipo entero.Respuestas:
Math.ceil()
es la función correcta para llamar. Supongo quea
es unint
, lo que haríaa / 100
realizar aritmética de enteros. Intenta en suMath.ceil(a / 100.0)
lugar.Salidas:
Ver http://ideone.com/yhT0l
fuente
a
es unint
en este ejemplo, y funciona como se sugiere. Al hacerint / float
el resultado es unfloat
, como se demuestra en la salida. Prueba el enlace.No sé por qué estás dividiendo entre 100 pero aquí mi suposición
int a;
o
fuente
Esto parecía hacer el trabajo perfecto. Trabajado todo el tiempo.
fuente
10 años después, pero ese problema todavía me sorprendió.
Entonces esta es la respuesta para aquellos que son demasiado tarde como yo.
Esto no funciona
Porque el resultado
a / 100
resulta ser un número entero y está redondeado, por lo que Math.ceil no puede hacer nada al respecto.Tienes que evitar la operación redondeada con esto
Ahora funciona.
fuente
La forma más fácil de hacer esto es simplemente: recibirás un flotador o un doble y querrás que lo convierta al redondeo más cercano y luego hacerlo
System.out.println((int)Math.ceil(yourfloat));
funcionará perfectamentefuente
Asumiendo a como doble y necesitamos un número redondeado sin lugar decimal. Use la función Math.round ().
Esto va como mi solución.
fuente