I've run across a problem that has exposed a hole in my understanding of MySQL, I'm hoping you experts can set me straight. I have a query that gets the sum of a column

Code:
Table `costs_payments`
     cost_id int(11)
     payment_id int(11)
     amount float

SELECT SUM(amount) FROM costs_payments WHERE cost_id = [variable]
When the query matches only one row, however, the sum is not as precise as the value in the amount column for that one row. For example:

Code:
SELECT * FROM costs_payments WHERE cost_id = 43

returns one row:

cost_id     payment_id     amount
   43           23           34.92


SELECT SUM(amount) FROM costs_payments WHERE cost_id = 43

SUM(amount)
 34.91988856
Is this some internal MySQL storage thing I don't know about? Any ideas? Thanks!