Given the number of decimal places in the sum, this is a sure thing
Unless you need more than four decimal digits, the best solution to avoid floating point errors (which this is) is to use the Currency data type. Currency is BOTH a format AND a data type. The currency data type can be formatted as any valid numeric format. It doesn't always have to look like currency with a symbol and two decimal places.
Currency behind the scenes is a scaled integer. That means that all numbers are assumed to have four decimal digits. So 33 is stored as 330000. Calculations are rounded to the fourth decimal place so 33 + 12.56713 = 485671