Von MSDN :
Eine Dezimalzahl ist ein unterzeichnet, Festkommawert bestehend aus einem integraler Bestandteil und optional Bruchteil. Das Integral und Bruchteile bestehen aus einer Reihe von Ziffern, die von null bis neun reichen (0 bis 9), getrennt durch einen Dezimalpunkt Symbol.
Ich dachte, es wäre eine Fließkommazahl mit Basis 10.
Wenn Sie die Version des Frameworks ändern, ändert sich die Beschreibung:
Mit 4.0
Eine Dezimalzahl ist ein Fließkommawert Wert, der aus einem Zeichen besteht, a numerischer Wert, wo jede Ziffer in der Wert reicht von 0 bis 9 und a Skalierungsfaktor, der angibt, dass Position eines Gleitpunkts das trennt das Integral und Bruchteile des numerischen Werts.
Ich werde sagen, es ist schlampig Bearbeitung der Version 1.1.
Und sogar in 1.1 im nächsten Absatz steht geschrieben:
Die binäre Darstellung eines Instanz von Dezimal besteht aus a 1-Bit-Zeichen, eine 96-Bit-Ganzzahl, und ein Skalierungsfaktor, der zum Teilen verwendet wird die 96-Bit-Ganzzahl und was angeben Teil davon ist ein Dezimalbruch. Der Skalierungsfaktor ist implizit der Nummer 10, erhöht auf einen Exponenten von 0 bis 28 reichen.
Ja, es ist eine Fließkommazahl. Das ist eine sehr alte Dokumentation - sie wurde in der .NET 2.0-Dokumentation behoben .
(Es ist unklar, ob das an mir lag, weil ich eine Korrektur einreichte oder ob es auch andere Leute hatten. Ich erinnere mich, dass ich meine Position immer wieder rechtfertigen musste, wo ich dachte, dass es ziemlich klar war - wenn Decimal
ein war Festkomma-Typ, warum hat jeder Wert einen Exponenten? Ich erinnere mich auch, Argumente in C # -Newsgroups darüber zu haben, wo Leute an der Dokumentation als Beweis festhielten, dass es wirklich ein Fixpunkttyp war .)
Ich denke, es liegt daran, dass Sie sich die .NET 1.1-Version von Decimal anschauen. Die 3.5-Version lautet:
Eine Dezimalzahl ist ein Fließkommawert Wert, der aus einem Zeichen besteht, a numerischer Wert, wo jede Ziffer in der Wert reicht von 0 bis 9 und a Skalierungsfaktor, der angibt, dass Position eines Gleitpunkts das trennt das Integral und Bruchteile des numerischen Werts.
Es ist ein Fehler in der Dokumentation. Die neuere Dokumentation besagt, dass A decimal number is a floating-point value
.
Es ist ein Fehler in der Dokumentation. Sie lesen die Version für .NET 1.1 (die etwa 10 Jahre alt ist). Wenn Sie die neueste Version lesen, werden Sie sie sehen wurde behoben.
Tags und Links .net