I figured out how it is happening, and it's actually the same underlying problem that was causing http://issues.civicrm.org/jira/browse/CRM-10827 for me (and not civicrm version).
At Administer > Localization > Languages,Currency,Locations there is a field called "Monetary Amount Display". I took this to mean that I could alter the display of monetary amounts in CiviCRM and so added in a € symbol at the start, giving it the value "€ %a". This worked great, in that all my amounts were now prefixed with the currency symbol on the donation form.
However, this gave me two problems:
1. When I edited the donation contribution page, all the amount values for "Fixed contribution amounts" were prefixed with "€ " in the form textfield. This gave an error on save, as reported at CRM-10827 I couldn't enter the € in the amount label btw, as then it was displayed as e.g. "€ - 50.00" and I didn't want the dash, etc.
2. The contribution total_amount is attempted to be saved to the database as €5.00, but since it is a numeric field, I get 0.00 in the db instead. This is because of line 1207 of CRM/Contribute/Form/Contribution/Confirm.php
$contribParams['total_amount'] = trim(CRM_Utils_Money::format($contribParams['total_amount'], ' '));
So either my understanding of the "Monetary Amount Display" setting is incorrect, in which case what is it intended for? Or there are at least 2 bugs where the display format is being used where it shouldn't be.
stella:
pretty sure the total amount etc comes back from the payment processor and stored in the contrib record. can you debug that process and figure out what it is returning and why