jremington:
Correct. If you don't use the second form, you may encounter just the sort of difficulties that you are now encountering.
It is likely that the random bits in the memory location assigned to the uninitialized floating point variable represent an invalid floating point number.
I hope someone might add this to official VariableDeclation Documentation.