> 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
