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 .
Réponses
Trop de publicités?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).
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.
- Réponses précédentes
- Plus de réponses