reales

Java maneja diferentes rangos de valores: float,  y double. Lo normal, mientras no se indique lo contrario, es trabajar con reales double.

Los números reales se caracterizan por

·         un valor máximo, que es el máximo valor absoluto que se puede representar

·         un valor mínimo, que es la mínima diferencia entre dos números reales (precisión)


Notación

Un valor real se indica por medio de

·         un signo; si no se indica, se presume que el valor es positivo

·         una mantisa; que es una serie de dígitos decimales, posiblemente con un punto para indicar la posición de la coma decimal

·         un exponente, que es opcional (si no se indica se presume que el exponente es 1); si aparece viene precedido de la letra 'E' y será un valor entero en notación decimal

Ejemplos:

·         3.1416, pi

·         2.5E3, dos mil quinientos

·         -1E-12, una millonésima

Si no se dice nada, el valor se interpreta con formato “double”. Si se quiere forzar la representación:

·         para que el valor sea “float”, debe terminarse con la letra “f” o “F”:

·         1f, que es la unidad en representación “float

·         para que el valor sea “double”, debe terminarse con la letra “d” o “D”:

·         1d, que es la unidad en representación “double

Valores fuera de rango

¿Qué pasa si nos salimos de rango?

class Reales

public class Reales {

 

  public static void main(String[] args) {

    double n = Double.MAX_VALUE;

    System.out.println("n=   " + n);

    System.out.println("2n=  " + 2*n);    // overflow

    System.out.println();

 

    n = Double.MIN_VALUE;

    System.out.println("n=   " + n);

    System.out.println("n/2= " + n/2);    // underflow

  }

}

n=   1.7976931348623157E308

2n=  Infinity

 

n=   4.9E-324

n/2= 0.0

 

Ver "Desbordamiento" y "Underflow".

¿Qué tipo de reales debo usar?

Java tiene un especial cariño por los "double". Todos los números con cifras decimales los interpreta como "double", salvo que se le indique lo contrario.

Lo más normal es que todos los reales sean de tipo "double", salvo que haya una necesidad evidente de recurrir a otro tipo:

"float", porque tenemos muchísimos valores con valores pequeños

Temas relacionados

119. Números (concepto)