Aproximación de un número decimal
Para expresar un número real con un número especificado de números decimales empleamos la función round. Por ejemplo, para expresar los números x e y con dos cifras decimales escribimos:
double x = 72.3543;
double y = 0.3498;
System.out.println(x + " es aprox. " + (double)Math.round(x*100)/100);
System.out.println(y + " es aprox. " + (double)Math.round(y*100)/100);
Se obtiene 72.35 y 0.35 como cabría esperar. Fijarse que round devuelve un número entero int que es necesario promocionar a double para efectuar la división entre 100.
Si empleamos la función floor en vez de round obtendríamos:
System.out.println(x + " es aprox. " + Math.floor(x*100)/100);
System.out.println(y + " es aprox. " + Math.floor(y*100)/100);
Se obtiene 72.35 y 0.34. La aproximación del primero es correcta ya que la tercera cifra decimal es 4 inferior a 5. La aproximación del segundo es incorrecta ya que la tercera cifra decimal es 9 mayor que 5. En la mayor parte de los cálculos se cometen errores, por lo que la diferencia entre floor y round no es significativa.
0 comentarios:
Publicar un comentario
Gracias por comentar ;-)