EasyTransferI2C library lost data precision in float type. Why?

Create your own data structures then and send them. As mentioned, floats are too inaccurate for your purposes. This means you'll have to write any of the math functions yourself, since you can never convert the whole structure to floats (but maybe the fraction). However, since you know that the number has to be between -360 and 360, you can separate out the integer to be one variable and the fraction to be another variable.