2009-04-13 5 views
12

On ne sait pas sur le sizeof pour les types décimaux. Est-ce que la taille en octets varie par précision comme dans le serveur sql? La variable de précision pour le type C# 'décimal'?C# sizeof decimal?

Je ne veux pas activer le code non sécurisé pour appeler simplement sizeof sur un type décimal. Comment aborderiez-vous cela?

Répondre

15

Comme d'autres l'ont dit, decimal est toujours 16 octets (128 bits). La précision de decimal est toujours 28/29 chiffres. C'est un type à virgule flottante, contrairement au type DECIMAL de SQL. Voir my article on it pour plus de détails.

+1

C'est de loin la meilleure réponse si vous cliquez sur le lien et lisez l'article. MSDN s'arrête d'expliquer comment il est stocké ce qui est vraiment nécessaire à la source de référence primaire. –

22

Le mot-clé decimal indique un type de données de 128 bits.

Source: MSDN

+0

Il y a une version à faible bande passante de MSDN maintenant>? Intéressant. Certes, j'ai une connexion à haute vitesse à la maison et au travail, mais c'est intéressant à savoir. – Powerlord

+0

Oui, je préfère créer un lien vers la version à faible bande passante lorsqu'il est utilisé comme référence, car il se charge beaucoup plus rapidement et rend bien dans la plupart des navigateurs. –

+0

+1 pour le bas-bande - j'ai appris quelque chose de nouveau aujourd'hui aussi. –

5

La taille d'un System.Decimal dans le .NET Framework est fixé à 16 octets.

1

128 bits précis des valeurs décimales avec 28-29 chiffres significatifs, 128 bits = 16 octets

Questions connexes