Double valeur maximale en Java

Mohammad Irfan 12 octobre 2023
Double valeur maximale en Java

Ce didacticiel présente ce qu’est la double valeur maximale en Java et comment calculer une valeur maximale pour le type de données double en Java.

Double est un type de données en Java qui stocke des valeurs à virgule flottante. Sa taille est de 16 octets et peut être utilisée pour contenir la plus grande valeur en Java.

Java fournit une constante MAX_VALUE dans le wrapper Double qui peut être utilisé pour obtenir la valeur maximale en virgule flottante. Il représente une valeur maximale qu’un type double peut contenir.

Le type double Java suit la spécification IEEE 754 et utilise ses 52 bits binaires pour contenir la partie mantisse de la valeur. Comprenons la valeur maximale du double avec quelques exemples.

Valeur Java Double Max

Dans cet exemple, nous avons utilisé la constante Double.MAX_VALUE et obtenu la plus grande valeur qu’un type double peut contenir en Java. Voir l’exemple ci-dessous.

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

Production:

1.7976931348623157E308

Voyons ce qui se passe si nous ajoutons une valeur à max_value. Si nous essayons d’ajouter même 1.01, la valeur max_value ne change pas et la variable ne contient que la valeur max_value. Cela signifie qu’ajouter de la valeur au double ne dépasse pas la plage. Voir l’exemple ci-dessous.

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

Production:

1.7976931348623157E308
1.7976931348623157E308

Mais attendez. Si nous multiplions le Double.MAX_VALUE avec un 1,01, alors il passe à l’infini positif, ce qui signifie que si nous essayons d’attribuer une valeur supérieure à max_value, il passe à l’infini positif.

Ainsi, lorsque vous travaillez avec double, vous devez faire attention à la limite max_value ; sinon, il tendra vers l’infini. Voir l’exemple ci-dessous.

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

Production:

1.7976931348623157E30
Infinity