Detta är vad jag hittade när jag hade detta tvivel.
mysql> create table numbers (a decimal(10,2), b float);
mysql> insert into numbers values (100, 100);
mysql> select @a := (a/3), @b := (b/3), @a * 3, @b * 3 from numbers \G
*************************** 1. row ***************************
@a := (a/3): 33.333333333
@b := (b/3): 33.333333333333
@a + @a + @a: 99.999999999000000000000000000000
@b + @b + @b: 100
Decimalen gjorde precis vad som ska göras i dessa fall, den trunkerade resten och förlorade därmed 1/3-delen.
Så för summor är decimalen bättre, men för divisioner är flötet bättre, upp till någon punkt, förstås. Jag menar, att använda DECIMAL kommer inte att ge dig en "felbevis aritmetik" på något sätt.
Hoppas det här hjälper.