I calcoli causavano una perdita di precisione. Se prima il numero era 3.55, dopo i calcoli poteva diventare qualcosa come 3.54967898674567630881011854. Questo numero è molto "preciso", e non può essere immagazzinato in una colonna FLOAT (che non è abbastanza capiente) ma deve essere immagazzinato in una tabella DOUBLE (precisione doppia).
Questo è il problema. Ora eliminando quei calcoli potresti aver risolto parzialmente, ma se vuoi essere sicuro che 3.55 non diventi 3.54, devi usare DECIMAL invece di FLOAT. Se invece non te ne frega niente, la soluzione è arrotondare il numero al secondo decimale con ROUND().