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