lunes, enero 10, 2011

Convertir a entero un doble redondeando su parte decimal

Hola,

Hoy tenía que redondear un número decimal (double) a un entero teniendo en cuenta su parte decimal y si esta era igual o mayor a 0,5, añadir uno a su parte entera.

Parece simple, pero dar con una solución que se adaptase a mi necesidad me ha llevado un ratín.

Para ello he usado la clase java.text.DecimalFormat.

Esta clase es perfecta para "decorar" nuestra salida de números decimales, pero también funciona muy bien para solucionar el problema de elimiar la parte decimal de un número redondeando su parte entera.

Es simple. Sólo tenemos que pasar un patrón en el constructor de la clase donde no demos opción a mostrar decimales (esta clase, al igual que SimpleDateFormat, nos convierte nuestros números en cadenas). Y después usar su método "format". Un ejemplo:


DecimalFormat df = new DecimalFormat ("##");
int diasVacaciones = Integer.parseInt (df.format ((diasTrabajados) * 30d / 360d));


El resultado será un número entero redondeado en caso de haber sido necesario.

No hay comentarios: