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?J'utilise toujours Decimal ; je n'ai jamais utilisé MONEY auparavant.
Récemment, j'ai trouvé un article concernant le type de données décimal par rapport au type de données monétaire dans Sql Server qui pourrait vous intéresser :
Il semble également que le type de données "argent" ne donne pas toujours des résultats exacts lorsque vous effectuez des calculs avec ce type de données : cliquer
Par le passé, j'ai utilisé un champ INT et stocké le montant en cents (centimes d'euro / centimes de dollar).
Cela dépend de votre demande !!! Je travaille dans les services financiers où nous considérons normalement que le prix est significatif jusqu'à 5 décimales après le point, ce qui, bien sûr, lorsque vous achetez quelques millions à 3,12345 pence/cents, est un montant significatif. Certaines applications fournissent leur propre type SQL pour gérer cela.
D'un autre côté, cela n'est peut-être pas nécessaire. <Humour Les tarifs des entrepreneurs semblaient toujours être arrondis à la centaine de livres sterling la plus proche, mais ils semblent actuellement être arrondis aux 25 livres sterling les plus proches, dans le contexte actuel de resserrement du crédit. </humour>
N'alignez pas vos pensées sur les types de données disponibles. Analysez plutôt vos besoins et voyez quel type de données convient le mieux. Float est toujours le plus mauvais choix compte tenu de la limitation de l'architecture dans le stockage de la version binaire des nombres à virgule flottante. L'argent est une unité standard et sera certainement mieux pris en charge pour les opérations liées à l'argent. Dans le cas du type décimal, vous devrez gérer tout et n'importe quoi, mais vous savez que vous êtes le seul à manipuler un type décimal, ce qui vous évitera les surprises que vous pourriez avoir avec les deux autres types de données.
- Réponses précédentes
- Plus de réponses