I just came across the definition of NaN in Double.class. It says:
/**
* A constant holding a Not-a-Number (NaN) value of type
There is no difference between 0.0 and 0.0d as Java takes doubles by default to represent floating point numbers.
Still, the code is more readable as in many languages, float is the default as well as it was in Oak later evolved to become Java so it looks like historical issue.
--Link found by Andy Turner.