mysql error 1265 data truncated for column
Not addressing the question, but addressing 2 bugs in your schema.


FLOAT(m,n) takes the decimal input, rounds to n decimal places in decimal, then converts to binary with another rounding error.
FLOAT (with or without (m,n)) can hold only about 7 digits of precision.  Hence, both numbers in your example lose precision at the low end.  As you found out, storing 3535929.559 into a FLOAT(20,3), then retrieving it will yield only 3535929.500.  This is because a FLOAT has only 24 "significant bits of precision".


There are two solutions for both bugs:


DECIMAL(m,n) -- (20,3) will still round to 3 decimal places, but that might be OK for your application.  But it does not have the extra rounding to binary nor the loss of precision.
DOUBLE (without (m,n)) -- This has about 16 digits of precision, more than enough for most applications.  And, even though the decimal input will be rounded to binary, it will be so far out that it is unlikely to cause errors.


Sizes...

FLOAT (with or without (m,n)) takes 4 bytes.
DOUBLE (with or without (m,n)) takes 8 bytes.
DECIMAL(20,3) takes 10 bytes.  Shrinking either number may save space.