2009-04-13 9 views
12

Unklar auf die Größe von Dezimaltypen. Ändert sich die Größe in Byte genau wie in SQL Server? Ist die Präzisionsvariable für den C# -Typ 'dezimal'?C# Größe der Dezimalzahl?

Ich möchte nicht auf unsicheren Code drehen sizeof auf einem Dezimal-Typ nur callen. Wie würdest du das angehen?

Antwort

15

Wie bereits gesagt wurde, ist immer decimal 16 Bytes (128 Bits). Die Genauigkeit von decimal ist immer 28/29 Ziffern. Es ist ein Fließkommatyp, anders als SQL DECIMAL Typ. Weitere Informationen finden Sie unter my article on it.

+1

Dies ist bei weitem die beste Antwort ist, wenn Sie auf den Link klicken und den Artikel zu lesen. MSDN hört nicht auf zu erklären, wie es gespeichert wird, was wirklich in der primären Referenzquelle benötigt wird. –

22

Das Dezimalschlüsselwort gibt einen 128-Bit-Datentyp an.

Quelle: MSDN

+0

jetzt eine geringe Bandbreite Version von MSDN Es gibt>? Interessant. Zugegeben, ich habe eine Hochgeschwindigkeitsverbindung sowohl zu Hause als auch bei der Arbeit, aber es ist interessant zu wissen. – Powerlord

+0

Ja, ziehe ich an die niedrigen Bandbreite Version zu verbinden, wenn sie als Referenz verwendet, da es viel schneller lädt und macht schön in den meisten Browsern. –

+0

+1 für das Low-Band - auch heute habe ich etwas Neues gelernt. –

5

Die Größe eines System.Decimal in .NET Framework ist auf 16 Bytes festgelegt.

1

128-Bit-genaue Dezimalwerte mit 28-29 signifikanten Stellen, 128 Bit = 16 Byte