Redondear un número

4160 vistas

Redondear un real a un entero:
En la conversión de reales a enteros en operaciones de tipos nativos, Java se contenta en truncar la parte decimal.



java
  1. double a = 1.99;
  2. int b = a; // b=1



Como solución, podemo incrementar el valor real en 0.5 antes de la conversión.



java
  1. double a = 1.8;
  2. // conversión con redondeo
  3. int b = a+0.5; // b=2



Redondear un real a 10^-2 (dos dígitos decimales):
Podemos realizarlo de forma manual haciendo:



java
  1. double a = 1.6666666
  2. // redondeamos el valor a 2 decimales
  3. a *= 100;
  4. a = (int)(a+.5);
  5. a /= 100;



Es importante que comentemos estos trucos para hacer leible el código resultante.

La clase java.lang.Math:
La clase Math tiene algunos métodos para realizar redondeos (inferior, superior o más cercano). Tienen la ventaja de generar código más leible, pero, como desventaja, no existe un método para redondear a 2 decimales (10^-2).