Décimal(19,4) ou Décimale(19.2) - qui dois-je utiliser?
Cela sonne comme une question stupide, mais j'ai remarqué que dans beaucoup de modèles de table pour l'e-commerce liées à des projets, j'ai presque toujours voir décimal(19, 4) étant utilisé pour la monnaie.
Pourquoi les 4 sur l'échelle? Pourquoi pas les 2?
Peut-être que je vais manquer un potentiel de calcul de la question en bas de la route?
lorsque vous avez un ms-sql base de données, vous pouvez utiliser le type de données de l'argent.
Virgule est plus précis que de l'argent, et parce que je vois décimal utilisé dans de nombreux e-commerce type d'exemples.
La plus grande précision permet de réduire les erreurs d'arrondi - juste une supposition
Virgule est plus précis que de l'argent, et parce que je vois décimal utilisé dans de nombreux e-commerce type d'exemples.
La plus grande précision permet de réduire les erreurs d'arrondi - juste une supposition
DECIMAL(19, 4)
est un choix populaire case this vérifiez également ici Monnaie Mondiale Formats de décider du nombre de décimales à utiliser , l'espérance aide.OriginalL'auteur user1447679 | 2014-12-05
Vous devez vous connecter pour publier un commentaire.
Tout d'abord - vous recevoir un incorrect avis d'autres réponses. Obseve suivantes (système d'exploitation 64 bits sur une architecture 64 bits):
Note le nombre de traits de soulignement sous le titre - 39 dans tous les. (J'ai changé tous les dix à une période de faciliter le comptage.) C'est précisément assez pour 38 chiffres (le maximum autorisé, et le défaut sur un 64 bits CPU), plus un point décimal de l'affichage. Même si les deux opérandes ont été déclarés comme décimal(18,2) le calcul a été effectué, et a enregistré en décimal(38,4) type de données. (Je suis en cours d'exécution SQL 2012 sur un ordinateur 64 bits - certains détails peuvent varier en fonction de l'architecture de la machine et l'OS.)
Par conséquent, il est clair qu'aucune précision n'est perdu. Au contraire, seuls les débordements peuvent se produire, pas de perte de précision. Ceci est une conséquence directe de tous les calculs à virgule opérandes en cours d'exécution comme l'arithmétique des nombres entiers. Vous verrez parfois des artefacts de cette intelli-sense lorsque le type de champs intermédiaires de décimal type sont signalés comme étant int à la place.
Prenons l'exemple ci-dessus. Les deux opérandes sont de type décimal(18,2) et sont enregistrés comme étant des entiers de valeur 1, avec une échelle de 2. Lorsqu'il est multiplié le produit est encore de 1, mais l'échelle est évaluée en ajoutant les échelles, afin de créer une suite d'entiers à la valeur 1 et à l'échelle 4, qui est une valeur de 0,0001 et de type décimal(18,4) stockées sous la forme d'un nombre entier avec la valeur 1 et à l'échelle de 4.
Lire le dernier paragraphe de nouveau.
Rincer et répéter une fois de plus.
Dans la pratique, sur un ordinateur 64 bits et OS, c'est en fait stocké et mis en avant comme étant de type *decimal (38,4), car les calculs sont effectués sur un PROCESSEUR où la des bits supplémentaires sont gratuits.
Pour revenir à votre question - Toutes les grandes monnaies du monde (que je connais) ne nécessitent 2 décimales, mais il ya une poignée d'où 4 sont nécessaires, et il y a des transactions financières telles que les transactions de devises et la vente d'obligations d'où 4 décimales sont mandatés par la loi. Lors de l'élaboration de la de l'argent type de données Microsoft semble avoir opté pour l'échelle maximale qui pourrait être nécessaire plutôt que la normale à l'échelle requise. Étant donné le faible nombre de transactions, et les sociétés, en réalité exigent de la précision de plus de 19 chiffres, cela semble parfaitement raisonnable.
Si vous avez:
alors vous devez être sûr d'utiliser le type décimal avec échelle 2 (comme décimal(19,2) ou décimal(18,2) ou décimal(38,2)) au lieu de l'argent. Cela permettra de réduire certains de vos conversions et, compte tenu des hypothèses ci-dessus, n'ont pas de coût. Un cas typique où ces hypothèses sont rencontré est dans un GL ou livres auxiliaires) système de comptabilité de suivi des opérations de la pièce de un cent. Cependant, d'actions ou d'obligations d'un système pas répondre ces hypothèses, car les 4 chiffres de l'échelle sont prescrites par la loi dans ces cas.
Un moyen de distinguer les deux cas est de savoir si les opérations sont déclarées dans cents ou %, qui ne nécessitent que 2 chiffres de l'échelle, ou dans points de base qui nécessitent des 4 chiffres de l'échelle.
Si vous n'êtes pas certain de ce qui s'applique à votre la programmation de circonstance, consultez votre Contrôleur ou le Directeur des Finances de l'juridique les PCGR et les exigences de votre application. (S)il sera en mesure de vous donner un avis définitif.
OriginalL'auteur Pieter Geerkens
Des choses comme le prix de l'essence serait d'utiliser le supplément de "l'échelle" des postes. Vous avez vu de gaz à $1.959 par gallon, droit?
OriginalL'auteur OHC
Lors de l'utilisation décimal c'est à vous de décider comment vous voulez utiliser selon les besoins de votre entreprise.
Mais quand vous allez utiliser l'Argent de type de données dans sql par défaut magasins avec 4 décimales.
OriginalL'auteur Ali Adravi
En SQL le 19 est le nombre d'entiers, le 4 est le nombre de décimales.
Si vous n'avez que 2 décimales et que vous stockez peut-être un résultat de certains calculs, ce qui se traduit par plus de 2 décimales, il y a "no way" pour stocker les décimales.
Certaines devises fonctionne avec plus de 2 décimales.
Utiliser le type de données décimal, et non pas de l'argent.
Oui, 19 est le nombre d'entiers (ce qui inclut les décimales). Donc Décimal(10,3) maximum peut avoir un certain nombre de 9999999.999 [1234567.123]
Pouvez-vous penser à un exemple de la nécessité d'utiliser 4 sur l'échelle au lieu de 2? Disons que pour une table de stockage de l'abonnement mensuel des prix. La recherche d'un scénario d'exemple, possible de calcul, ou de quelque raison que 4 sur l'échelle serait utile en bas de la route.
Si vous avez seulement ajouter et soustraire des nombres, puis 2 chiffres de précision est assez. Lors de la division (ou de calculer les pourcentages) vous avez vraiment besoin de plus de 2 chiffres. Considérons, par exemple, la déduction fiscale des calculs à partir des fiches de paie. Ne me croyez pas, regarder Superman III avec Richard Pryor.
OriginalL'auteur Øyvind Berg