This issue is most likely occurring due to limitations on how floating point numbers can be stored on systems. Detailed information about this topic can be found using following link:
http://www.harrisgeospati...cleID/2723/2723.aspx
If you use doubles instead of floats, this helps with the problem:
IDL> a = 19.05d
IDL> print, JSON_SERIALIZE(a)
19.05
-David
Harris GS