2010-10-12 3 views
2

En studio de gestion de serveur sql, type de données money, lorsque j'entre un montant avec un nombre décimal, il ajoute automatiquement des zéros pour remplir les centièmes. Comment puis-je déterminer la quantité d'espaces après la virgule?Type de données Money Precision - SQL Server (SSMS)

+0

Que demandez-vous? Comment ne pas afficher les zéros de fin ou comment accueillir un plus grand nombre de décimales? –

+1

C'est SSMS, pas MSSM. – Oded

Répondre

7

Le nombre de zéros derrière le point est appelé precision d'un type de données. Le type de données money a une fixed precision:

with accuracy to a ten-thousandth of a monetary unit. 

C'est cinq chiffres après le point. Si vous souhaitez une précision différente, utilisez le type de données decimal. Quelques exemples:

select cast(0.123456789 as money) 
,  cast(0.123456789 as decimal(5,3)) 
,  cast(0.123456789 as decimal(5,1)) 

: Ce imprime

0.1235 0.123 0.1 
+0

Essayez d'utiliser 0.1000 et voyez ce que votre sortie est ... pour moi, c'est '0.10' (manquant les 3ème et 4ème 0 après la décimale). – Chains

+0

Je crois que la précision est le nombre total de chiffres dans le nombre, et l'échelle est combien de ceux-ci sont à la droite du point décimal.http: //msdn.microsoft.com/en-us/library/aa258274 % 28v = sql.80% 29.aspx – funkymushroom

+1

@Andomar Comme démontré par vos exemples, dix-millièmes est * quatre * (pas cinq) chiffres après le point (dixièmes, centièmes, millièmes, dix-millièmes) – gknicker

Questions connexes