How do you set a double value to a "non-value"

Ankur picture Ankur · Jun 1, 2010 · Viewed 47.8k times · Source

I have two double data elements in an object.

Sometimes they are set with a proper value and sometimes not. When the form field from which they values are received is not filled I want to set them to some value that tells me, during the rest of the code that the form fields were left empty.

I can't set the values to null as that gives an error, is there some way I can make them 'Undefined'.

PS. Not only am I not sure that this is possible, it might not also make sense. But if there is some best practice for such a situation I would be keen to hear it.

Answer

Jon Skeet picture Jon Skeet · Jun 1, 2010

Two obvious options:

  • Use Double instead of double. You can then use null, but you've changed the memory patterns involved substantially.
  • Use a "not a number" (NaN) value:

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

    Note that some other operations on "normal" numbers could give you NaN values as well though (0 divided by 0 for example).