Your query is good, your selection of data types not.
FLOAT should not be used for currency, nor REAL.
You should use MONEY or DECIMAL.
Float uses scientific approximations and stuff, it is good for sampling and math.
You can't change that behaviour you're getting.
http://msdn.microsoft.com/en-us/library/ms173773.aspx[
^]
PS Notice that 4.54747350886464E-13 means...
0.00000000000454747350886464
See what I mean by 'scientific approximations'?
FLOAT and REAL are good, but not for your particular problem.
I had the same problem as you in the past, only I was measuring how many kilos of tortillas were being used at a restaurant.