Valor máximo doble en Java

Mohammad Irfan 12 octubre 2023
Valor máximo doble en Java

Este tutorial presenta qué es el valor máximo doble en Java y cómo calcular un valor máximo para el tipo de datos doble en Java.

Double es un tipo de datos en Java que almacena valores de puntos flotantes. Su tamaño es de 16 bytes y se puede utilizar para contener el valor más grande en Java.

Java proporciona un MAX_VALUE constante en el contenedor Double que se puede utilizar para obtener el valor máximo de coma flotante. Representa un valor máximo que puede contener un tipo doble.

El tipo doble de Java sigue la especificación IEEE 754 y usa sus 52 bits binarios para contener la parte de mantisa del valor. Entendamos el valor máximo del doble con algunos ejemplos.

Valor máximo doble de Java

En este ejemplo, usamos la constante Double.MAX_VALUE y obtuvimos el valor más grande que puede contener un tipo doble en Java. Vea el ejemplo a continuación.

public class SimpleTesting {
  public static void main(String[] args) {
    double max_value = Double.MAX_VALUE;
    System.out.println(max_value);
  }
}

Producción :

1.7976931348623157E308

Veamos qué sucede si agregamos algún valor al valor_máx. Si intentamos agregar incluso 1.01, el valor_máx no cambia y la variable solo contiene el valor_máx. Significa que agregar valor al doble no desborda el rango. Vea el ejemplo a continuación.

public class SimpleTesting {
  public static void main(String[] args) {
    double max_value = Double.MAX_VALUE;
    System.out.println(max_value);
    max_value = max_value + 1.01; // increment
    System.out.println(max_value);
  }
}

Producción :

1.7976931348623157E308
1.7976931348623157E308

Pero espera. Si multiplicamos el Double.MAX_VALUE por 1.01, entonces va a infinito positivo, lo que significa que si tratamos de asignar un valor mayor que max_value, va a infinito positivo.

Por lo tanto, mientras trabaja con double, debe tener cuidado con el límite de max_value; de lo contrario, tenderá al infinito. Vea el ejemplo a continuación.

public class SimpleTesting {
  public static void main(String[] args) {
    double max_value = Double.MAX_VALUE;
    System.out.println(max_value);
    max_value = max_value * 1.01;
    System.out.println(max_value);
  }
}

Producción :

1.7976931348623157E30
Infinity