J'ai une base de données postgresql et je l'utilise pour un projet qui gère la valeur monétaire. Ma question est: Comment limiter le nombre de chiffres décimaux à deux pour une colonne de type Double Precision ou float8 dans une table postgresql?Limite des chiffres décimaux dans le type Double Precision ou float8 dans postgesql
Répondre
Il suffit d'utiliser le type Decimal
(Numeric
) à la place, comme documented in the manual, par ex. cost decimal(10,2)
.
Le premier numéro (10) définit le total longueur du nombre (tous les chiffres, y compris après la virgule), alors que le deuxième (2) indique combien d'entre eux sont après la virgule. La déclaration ci-dessus vous donne 8 chiffres devant le point. Bien sûr, vous pouvez augmenter cela - les limitations du type Numeric
sont beaucoup, beaucoup plus élevées. À mon avis, il n'est pas nécessaire d'utiliser le virgule flottante lorsque vous gérez des devises ou d'autres valeurs monétaires. Je n'ai aucune idée de la comparaison des performances entre les deux types, mais Decimal
a un avantage - c'est un nombre exact (ce qui n'est généralement pas le cas avec les virgules flottantes). Je suggère également de lire un interesting, but short discussion on the topic.
- 1. Format type double avec nombre minimal de chiffres décimaux
- 2. Double Precision
- 3. IEEE Double Precision
- 4. Precision long double pire que double
- 5. chiffres ronds PHP, ajouter des nombres décimaux
- 6. Chiffres décimaux inversés en javascript
- 7. chiffres de limite dans var multiplication total
- 8. Comment calculer le nombre de chiffres décimaux significatifs d'un double C++?
- 9. stof() et stod() precision
- 10. chiffres pouvoirs Nième dans une limite donnée
- 11. Comment se débarrasser des chiffres décimaux sur l'axe des x
- 12. formatNumber: comment ajouter 2 chiffres décimaux à l'arrière des nombres?
- 13. NSNumberFormatterCurrencyStyle nombre formateur sans chiffres décimaux
- 14. Chiffres décimaux arrondis à la valeur supérieure
- 15. Contrôle du nombre de chiffres décimaux dans la sortie d'impression dans R
- 16. XAMPP + PostgeSQL = Erreurs
- 17. Matlab Importdata Precision
- 18. C# nombre illimité de chiffres décimaux significatifs (précision arbitraire) sans java
- 19. Besoin de convertir le double ou le décimal en chaîne
- 20. Comment formater un double avec une quantité variable de chiffres décimaux
- 21. Comment définir Precision-ToolTip dans Highchart
- 22. Représentation des nombres décimaux avec le type float mysql?
- 23. C# - un problème très petit nombre - pas assez de chiffres dans le double type de données
- 24. Comment arrondir les nombres décimaux dans Android
- 25. double limite à six virgule dans asp.net
- 26. Ajout de contrainte de vérification pour le type double précision dans postgres
- 27. Liste des nombres décimaux
- 28. gamme de chiffres primitifs - double
- 29. Comment formater un double en une chaîne et afficher uniquement des chiffres décimaux lorsque cela est nécessaire?
- 30. C# Comment formater un double en une chaîne et afficher uniquement des chiffres décimaux lorsque cela est nécessaire?
Je suis d'accord. Le type de données 'float' (ou' real') n'est pas utile du tout. –
Ok. Une autre question, Comment puis-je déclarer un type de données décimal dans le fichier service.xml dans liferay mvc? Une idée ? – saurjk
Pour autant que je sache, il n'y a pas de solution directe. Une solution de contournement, en utilisant 'BigDecimal' de Java, [peut être trouvé dans les commentaires à Liferay LEP-841] (http://issues.liferay.com/browse/LEP-841). Il est également [discuté dans le forum] (http://www.liferay.com/community/forums/-/message_boards/message/11788130). J'espère que vous pouvez trouver une solution; sinon - postez une autre question, je suis sûr que quelqu'un a déjà fait quelque chose de similaire. – Sorrow