Valor máximo double em Java

Mohammad Irfan 12 outubro 2023
Valor máximo double em Java

Este tutorial apresenta o que é valor máximo duplo em Java e como calcular um valor máximo para o tipo de dados duplo em Java.

Double é um tipo de dados em Java que armazena valores de pontos flutuantes. Seu tamanho é de 16 bytes e pode ser usado para armazenar o maior valor em Java.

Java fornece uma constante MAX_VALUE no wrapper Double que pode ser usado para obter o valor máximo de ponto flutuante. Ele representa um valor máximo que um tipo duplo pode conter.

O tipo duplo Java segue a especificação IEEE 754 e usa seus 52 bits binários para manter a parte da mantissa do valor. Vamos entender o valor máximo do duplo com alguns exemplos.

Java Double Max Value

Neste exemplo, usamos a constante Double.MAX_VALUE e obtivemos o maior valor que um tipo double pode conter em Java. Veja o exemplo abaixo.

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

Resultado:

1.7976931348623157E308

Vamos ver o que acontece se adicionarmos qualquer valor a max_value. Se tentarmos adicionar até 1,01, o max_value não muda e a variável mantém o max_value apenas. Isso significa que agregar valor ao dobro não ultrapassa o intervalo. Veja o exemplo abaixo.

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);
  }
}

Resultado:

1.7976931348623157E308 1.7976931348623157E308

Mas espere. Se multiplicarmos Double.MAX_VALUE por 1,01, ele vai para o infinito positivo, o que significa que se tentarmos atribuir um valor maior do que max_value, ele vai para o infinito positivo.

Portanto, ao trabalhar com double, você deve ter cuidado com o limite max_value; caso contrário, tenderá para o infinito. Veja o exemplo abaixo.

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);
  }
}

Resultado:

1.7976931348623157E30 Infinity