29 votes

Quelle est la meilleure façon de stocker une valeur monétaire dans la base de données ?

J'ai besoin de stocker quelques champs relatifs à l'argent dans la base de données, mais je ne suis pas sûr du type de données à utiliser. argent y décimal .

1voto

HLGEM Points 54641

Utilisez les décimales et utilisez plus de décimales que vous ne pensez en avoir besoin pour que les calculs soient corrects. L'argent ne donne pas toujours des résultats corrects dans les calculs. N'utilisez en aucun cas float ou real, car ce sont des types de données inexacts qui peuvent fausser les calculs (en particulier lorsqu'ils deviennent plus complexes).

1voto

Satyendra Points 158

Pour certaines données (comme l'argent) pour lesquelles vous ne voulez pas d'approximation ou de changements dus à la valeur flottante, vous devez vous assurer que les données ne sont jamais "flottantes", elles doivent être rigides de part et d'autre de la virgule décimale.
Un moyen simple de se prémunir est de convertir la valeur en type de données INTEGER et de s'assurer que lorsque vous récupérez la valeur, la virgule décimale est placée à l'endroit approprié.
par exemple
1. Sauvegarder 240,10 $ dans la base de données.
2. Convertissez-le en une forme intégrale pure : 24010 (vous savez que c'est juste le décalage de la décimale).
3. Revenir à l'état décimal correct. Placez la décimale à deux positions à partir de la droite. $240.10

Ainsi, tout en étant dans la base de données, il sera sous la forme d'un nombre entier rigide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X