web-dev-qa-db-fra.com

Type de données PostgreSQL et MONEY pour les valeurs monétaires

Pour un projet, j'ai créé un tableau avec une colonne price MONEY NOT NULL colonne. Et je pensais qu'il gérerait les décimales correctement, contrairement à un nombre flottant (c'est-à-dire les problèmes d'arrondi IEEE), mais je finis par avoir des valeurs comme $9.94 (chaîne) renvoyée par la base de données, au lieu de 9.94 (numérique). Devoir manipuler manuellement la valeur du champ en supprimant le signe dollar est idiot; existe-t-il un moyen d'avoir une colonne MONEY sans signe monétaire?

Sinon, quel est le meilleur remplacement de type de données pour gérer les valeurs monétaires?

9
Yanick Rochon

Et ça?

Une valeur monétaire peut être convertie en numérique sans perte de précision. La conversion vers d'autres types peut potentiellement perdre en précision et doit également être effectuée en deux étapes:

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

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

9
Evaldas Buinauskas