> converts its argument to a string via SvPV, which on linux ends up calling > gcvt() with a precision of 15. This throws away bits. One could consider
Just to make this more clear: DB<1> p 0.0562 * 1e16 562000000000000 DB<2> p 0.05620000000000028 * 1e16 562000000000003 DB<3> p pack("U*",unpack("U*",0.0562)) * 1e16 562000000000000 DB<4> p pack("U*",unpack("U*",0.056200000000000028)) * 1e16 562000000000000