web-dev-qa-db-fra.com

Comment définir une valeur double sur une "non-valeur"

J'ai deux éléments de données doubles dans un objet.

Parfois, ils sont définis avec une valeur appropriée et parfois non. Lorsque le champ de formulaire à partir duquel leurs valeurs sont reçues n'est pas rempli, je veux leur attribuer une valeur qui m'indique, pendant le reste du code, que les champs de formulaire ont été laissés vides.

Je ne peux pas définir les valeurs sur null car cela donne une erreur, existe-t-il un moyen de les rendre "non définies".

PS. Non seulement je ne suis pas sûr que cela soit possible, mais cela pourrait aussi ne pas avoir de sens. Mais s'il existe une meilleure pratique pour une telle situation, je serais ravi de l'entendre.

25
Ankur

Deux options évidentes:

  • Utilisez Double au lieu de double. Vous pouvez ensuite utiliser null, mais vous avez considérablement modifié les modèles de mémoire impliqués.
  • Utilisez une valeur "pas un nombre" (NaN):

    double d = 5.5;
    System.out.println(Double.isNaN(d)); // false
    d = Double.NaN;
    System.out.println(Double.isNaN(d)); // true
    

    Notez que certaines autres opérations sur des nombres "normaux" pourraient également vous donner des valeurs NaN (0 divisé par 0 par exemple).

50
Jon Skeet