PostgreSQL and MONEY data type for currency values
What about this?

A money value can be cast to numeric without loss of precision. Conversion to other types could potentially lose precision, and must also be done in two stages:

SELECT '52093.89'::money::numeric::float8;


Source:
http://www.postgresql.org/docs/9.1/static/datatype-money.html