2009-04-13 7 views
12

Non chiaro sulla dimensione dei tipi decimali. La dimensione in byte varia in base alla precisione come in SQL Server? La variabile di precisione per il tipo C# è "decimale"?C# sizeof decimal?

Non voglio attivare il codice non sicuro per chiamare solo sizeof su un tipo decimale. Come ti avvicineresti a questo?

risposta

15

Come altri hanno già detto, decimal è sempre 16 byte (128 bit). La precisione di decimal è sempre di 28/29 cifre. È un tipo a virgola mobile, a differenza del tipo di SQL DECIMAL. Vedi my article on it per maggiori dettagli.

+1

Questa è di gran lunga la migliore risposta se si fa clic sul collegamento e si legge l'articolo. MSDN si limita a spiegare come viene memorizzato che è realmente richiesto nella fonte di riferimento principale. –

22

La parola chiave decimale indica un tipo di dati a 128 bit.

Fonte

: MSDN

+0

C'è una versione a bassa larghezza di banda di MSDN ora>? Interessante. Certo, ho una connessione ad alta velocità sia a casa che al lavoro, ma è interessante sapere. – Powerlord

+0

Sì, preferisco collegarmi alla versione a larghezza di banda ridotta quando viene usata come riferimento, poiché carica molto più velocemente e si presenta bene nella maggior parte dei browser. –

+0

+1 per la banda bassa: ho imparato qualcosa di nuovo anche oggi. –

5

La dimensione di una System.Decimal in .NET Framework è fissato a 16 byte.

1

valori decimali precisi a 128 bit con 28-29 cifre significative, 128 bit = 16 byte