Floating point handling in UniformSnapshot

This change fixes a bug in `UniformSnapshot#getValue(dobule)`, where `Double.NaN` could slip past argument verification resulting in `ArrayIndexOutOfBoundsException: -1`. 

The other commit removes a minor code smell with use of floating point number for array indexes.