Avoid the FLOAT type for database columns
Like in any language, a FLOAT has complicated semantics for precision. This sometimes causes stored numbers to be slightly off their original value.
Consider using DECIMAL instead. Decimals have well-defined behavior for rounding and range overflows.