EasyTransferI2C library lost data precision in float type. Why?

What Arduino are you using? On 8bit AVRs the "double" type is identical with the "float" type, so your result is expected. BTW: your way to extract integers out of the floating point types will never give you an increased precision, the contrary is the case. You will always loose precision that way.