Warum wird Dezimal als Fixpunkt beschrieben?

8

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.

    
Dave Hillier 17.03.2011, 14:09
quelle

5 Antworten

3

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.

    
xanatos 17.03.2011, 14:16
quelle
5

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 .)

    
Jon Skeet 17.03.2011 14:13
quelle
4

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.

    
vlad 17.03.2011 14:13
quelle
1

Es ist ein Fehler in der Dokumentation. Die neuere Dokumentation besagt, dass A decimal number is a floating-point value .

    
Vlad 17.03.2011 14:14
quelle
1

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.

    
Gabe 17.03.2011 14:15
quelle

Tags und Links