Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
Decimal-Struktur
Stellt eine Decimal-Zahl dar.
Assembly: mscorlib (in mscorlib.dll)
Der Decimal-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
Decimal(Double) | Initialisiert eine neue Instanz von Decimal mit dem Wert der angegebenen Gleitkommazahl mit doppelter Genauigkeit. |
|
Decimal(Int32) | Initialisiert eine neue Instanz von Decimal mit dem Wert einer angegebenen 32-Bit-Ganzzahl mit Vorzeichen. |
|
Decimal(Int32[]) | Initialisiert eine neue Instanz von Decimal mit einem binär dargestellten Decimal-Wert in einem angegebenen Array. |
|
Decimal(Int64) | Initialisiert eine neue Instanz von Decimal mit dem Wert einer angegebenen 64-Bit-Ganzzahl mit Vorzeichen. |
|
Decimal(Single) | Initialisiert eine neue Instanz von Decimal mit dem Wert der angegebenen Gleitkommazahl mit einfacher Genauigkeit. |
|
Decimal(UInt32) | Initialisiert eine neue Instanz von Decimal mit dem Wert einer angegebenen 32-Bit-Ganzzahl ohne Vorzeichen. |
|
Decimal(UInt64) | Initialisiert eine neue Instanz von Decimal mit dem Wert einer angegebenen 64-Bit-Ganzzahl ohne Vorzeichen. |
|
Decimal(Int32, Int32, Int32, Boolean, Byte) | Initialisiert einen neue Instanz von Decimal mit Parametern, die die Bestandteile der Instanz angeben. |
| Name | Beschreibung | |
|---|---|---|
|
Add | Addiert zwei angegebene Decimal-Werte. |
|
Ceiling | Gibt den kleinsten ganzzahligen Wert zurück, der größer oder gleich der angegebenen Dezimalzahl ist. |
|
Compare | Vergleicht zwei angegebene Decimal-Werte. |
|
CompareTo(Decimal) | Vergleicht diese Instanz mit einem angegebenen Decimal-Objekt. |
|
CompareTo(Object) | Vergleicht diese Instanz mit einem angegebenen Object. |
|
Divide | Dividiert zwei angegebene Decimal-Werte. |
|
Equals(Decimal) | Gibt einen Wert zurück, der angibt, ob diese Instanz und ein angegebenes Decimal-Objekt den gleichen Wert darstellen. |
|
Equals(Object) | Gibt einen Wert zurück, der angibt, ob diese Instanz und ein angegebenes Object denselben Typ und Wert darstellen. (Überschreibt ValueType.Equals(Object).) |
|
Equals(Decimal, Decimal) | Gibt einen Wert zurück, der angibt, ob zwei angegebene Instanzen von Decimal denselben Wert darstellen. |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
Floor | Rundet eine angegebene Decimal-Zahl auf die nächste Ganzzahl in Richtung minus unendlich. |
|
FromOACurrency | Konvertiert die angegebene 64-Bit-Ganzzahl mit Vorzeichen, die einen Currency-Wert für OLE-Automatisierung enthält, in den entsprechenden Decimal-Wert. |
|
GetBits | Konvertiert den Wert einer angegebenen Instanz von Decimal in die entsprechende binäre Darstellung. |
|
GetHashCode | Gibt den Hashcode für diese Instanz zurück. (Überschreibt ValueType.GetHashCode().) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
GetTypeCode | Gibt den TypeCode für den Werttyp Decimal zurück. |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
Multiply | Multipliziert zwei angegebene Decimal-Werte. |
|
Negate | Gibt das Ergebnis der Multiplikation des angegebenen Decimal-Werts mit -1 zurück. |
|
Parse(String) | Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in ihre Decimal-Entsprechung. |
|
Parse(String, NumberStyles) | Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil in die Decimal-Entsprechung. |
|
Parse(String, IFormatProvider) | Konvertiert die Zeichenfolgendarstellung einer Zahl unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in die Decimal-Entsprechung. |
|
Parse(String, NumberStyles, IFormatProvider) | Konvertiert die Zeichenfolgendarstellung einer Zahl unter Verwendung des angegebenen Stils und kulturspezifischer Formatierungsinformationen in die Decimal-Entsprechung. |
|
Remainder | Berechnet den Rest der Division zweier Decimal-Werte. |
|
Round(Decimal) | Rundet einen Decimal-Wert auf die nächste Ganzzahl. |
|
Round(Decimal, Int32) | Rundet einen Decimal-Wert auf die angegebene Anzahl von Dezimalstellen. |
|
Round(Decimal, MidpointRounding) | Rundet einen Decimal-Wert auf die nächste Ganzzahl. Ein Parameter gibt an, wie der Wert gerundet wird, wenn er genau zwischen zwei Zahlen liegt. |
|
Round(Decimal, Int32, MidpointRounding) | Rundet einen Decimal-Wert auf eine angegebene Genauigkeit. Ein Parameter gibt an, wie der Wert gerundet wird, wenn er genau zwischen zwei Zahlen liegt. |
|
Subtract | Subtrahiert einen angegebenen Decimal-Wert von einem anderen. |
|
ToByte | Konvertiert den Wert des angegebenen Decimal in die entsprechende 8-Bit-Ganzzahl ohne Vorzeichen. |
|
ToDouble | Konvertiert den Wert des angegebenen Decimal in die entsprechende Gleitkommazahl mit doppelter Genauigkeit. |
|
ToInt16 | Konvertiert den Wert des angegebenen Decimal in die entsprechende 16-Bit-Ganzzahl mit Vorzeichen. |
|
ToInt32 | Konvertiert den Wert des angegebenen Decimal in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. |
|
ToInt64 | Konvertiert den Wert des angegebenen Decimal in die entsprechende 64-Bit-Ganzzahl mit Vorzeichen. |
|
ToOACurrency | Konvertiert den angegebenen Decimal-Wert in den entsprechenden Currency-Wert für OLE-Automatisierung, der in einer 64-Bit-Ganzzahl mit Vorzeichen enthalten ist. |
|
ToSByte | Konvertiert den Wert des angegebenen Decimal in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen. |
|
ToSingle | Konvertiert den Wert des angegebenen Decimal in die entsprechende Gleitkommazahl mit einfacher Genauigkeit. |
|
ToString() | Konvertiert den Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung. (Überschreibt ValueType.ToString().) |
|
ToString(IFormatProvider) | Konvertiert den numerischen Wert dieser Instanz unter Berücksichtigung der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung. |
|
ToString(String) | Konvertiert den numerischen Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung unter Berücksichtigung des angegebenen Formats. |
|
ToString(String, IFormatProvider) | Konvertiert den numerischen Wert dieser Instanz unter Verwendung des angegebenen Formats und der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung. |
|
ToUInt16 | Konvertiert den Wert des angegebenen Decimal in die entsprechende 16-Bit-Ganzzahl ohne Vorzeichen. |
|
ToUInt32 | Konvertiert den Wert des angegebenen Decimal in die entsprechende 32-Bit-Ganzzahl ohne Vorzeichen. |
|
ToUInt64 | Konvertiert den Wert des angegebenen Decimal in die entsprechende 64-Bit-Ganzzahl ohne Vorzeichen. |
|
Truncate | Gibt den ganzzahligen Teil des angegebenen Decimal zurück; Bruchziffern werden verworfen. |
|
TryParse(String, Decimal) | Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in ihre Decimal-Entsprechung. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht. |
|
TryParse(String, NumberStyles, IFormatProvider, Decimal) | Konvertiert die Zeichenfolgendarstellung einer Zahl unter Verwendung des angegebenen Stils und kulturspezifischer Formatierungsinformationen in die Decimal-Entsprechung. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder nicht. |
| Name | Beschreibung | |
|---|---|---|
|
Addition | Addiert zwei angegebene Decimal-Werte. |
|
Decrement | Verringert den Decimal-Operanden um 1. |
|
Division | Dividiert zwei angegebene Decimal-Werte. |
|
Equality | Gibt einen Wert zurück, der angibt, ob zwei Instanzen von Decimal gleich sind. |
|
Explicit(Decimal to Byte) | Konvertiert ein Decimal in eine 8-Bit-Ganzzahl ohne Vorzeichen. |
|
Explicit(Decimal to UInt16) | Konvertiert ein Decimal in eine 16-Bit-Ganzzahl ohne Vorzeichen. |
|
Explicit(Decimal to SByte) | Konvertiert ein Decimal in eine 8-Bit-Ganzzahl mit Vorzeichen. |
|
Explicit(Decimal to Int16) | Konvertiert ein Decimal in eine 16-Bit-Ganzzahl mit Vorzeichen. |
|
Explicit(Decimal to Single) | Konvertiert ein Decimal in eine Gleitkommazahl mit einfacher Genauigkeit. |
|
Explicit(Decimal to Double) | Konvertiert ein Decimal in eine Gleitkommazahl mit doppelter Genauigkeit. |
|
Explicit(Decimal to Char) | Konvertiert ein Decimal in ein Unicode-Zeichen. |
|
Explicit(Decimal to UInt64) | Konvertiert ein Decimal in eine 64-Bit-Ganzzahl ohne Vorzeichen. |
|
Explicit(Decimal to Int32) | Konvertiert ein Decimal in eine 32-Bit-Ganzzahl mit Vorzeichen. |
|
Explicit(Decimal to UInt32) | Konvertiert ein Decimal in eine 32-Bit-Ganzzahl ohne Vorzeichen. |
|
Explicit(Decimal to Int64) | Konvertiert ein Decimal in eine 64-Bit-Ganzzahl mit Vorzeichen. |
|
Explicit(Double to Decimal) | Konvertiert eine Gleitkommazahl mit doppelter Genauigkeit in ein Decimal. |
|
Explicit(Single to Decimal) | Konvertiert eine Gleitkommazahl mit einfacher Genauigkeit in ein Decimal. |
|
GreaterThan | Gibt einen Wert zurück, der angibt, ob ein angegebenes Decimal größer als eine anderes angegebenes Decimal ist. |
|
GreaterThanOrEqual | Gibt einen Wert zurück, der angibt, ob ein angegebenes Decimal größer oder gleich einem anderen angegebenen Decimal ist. |
|
Implicit(Byte to Decimal) | Konvertiert eine 8-Bit-Ganzzahl ohne Vorzeichen in ein Decimal. |
|
Implicit(Char to Decimal) | Konvertiert ein Unicode-Zeichen in ein Decimal. |
|
Implicit(Int16 to Decimal) | Konvertiert eine 16-Bit-Ganzzahl mit Vorzeichen in ein Decimal. |
|
Implicit(Int32 to Decimal) | Konvertiert eine 32-Bit-Ganzzahl mit Vorzeichen in ein Decimal. |
|
Implicit(Int64 to Decimal) | Konvertiert eine 64-Bit-Ganzzahl mit Vorzeichen in ein Decimal. |
|
Implicit(SByte to Decimal) | Konvertiert eine 8-Bit-Ganzzahl mit Vorzeichen in ein Decimal. |
|
Implicit(UInt16 to Decimal) | Konvertiert eine 16-Bit-Ganzzahl ohne Vorzeichen in ein Decimal. |
|
Implicit(UInt32 to Decimal) | Konvertiert eine 32-Bit-Ganzzahl ohne Vorzeichen in ein Decimal. |
|
Implicit(UInt64 to Decimal) | Konvertiert eine 64-Bit-Ganzzahl ohne Vorzeichen in ein Decimal. |
|
Increment | Erhöht den Decimal-Operanden um 1. |
|
Inequality | Gibt einen Wert zurück, der angibt, ob zwei Instanzen von Decimal ungleich sind. |
|
LessThan | Gibt einen Wert zurück, der angibt, ob ein angegebenes Decimal kleiner als ein anderes angegebenes Decimal ist. |
|
LessThanOrEqual | Gibt einen Wert zurück, der angibt, ob ein angegebenes Decimal kleiner oder gleich einem anderen angegebenen Decimal ist. |
|
Modulus | Gibt den Rest aus der Division zweier angegebener Decimal-Werte zurück. |
|
Multiply | Multipliziert zwei angegebene Decimal-Werte. |
|
Subtraction | Subtrahiert zwei angegebene Decimal-Werte. |
|
UnaryNegation | Negiert den Wert des angegebenen Decimal-Operanden. |
|
UnaryPlus | Gibt den Wert des Decimal-Operanden zurück (das Vorzeichen des Operanden bleibt unverändert). |
| Name | Beschreibung | |
|---|---|---|
|
MaxValue | Stellt den größtmöglichen Wert von Decimal dar. Dieses Feld ist konstant und schreibgeschützt. |
|
MinusOne | Stellt die Zahl -1 dar. |
|
MinValue | Stellt den kleinstmöglichen Wert von Decimal dar. Dieses Feld ist konstant und schreibgeschützt. |
|
One | Stellt die Zahl 1 dar. |
|
Zero | Stellt die Zahl 0 (null) dar. |
| Name | Beschreibung | |
|---|---|---|
|
IConvertible.ToBoolean | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToBoolean. |
|
IConvertible.ToByte | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToByte. |
|
IConvertible.ToChar | Infrastruktur. Diese Konvertierung wird nicht unterstützt. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst. |
|
IConvertible.ToDateTime | Infrastruktur. Diese Konvertierung wird nicht unterstützt. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst. |
|
IConvertible.ToDecimal | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToDecimal. |
|
IConvertible.ToDouble | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToDouble. |
|
IConvertible.ToInt16 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt16. |
|
IConvertible.ToInt32 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt32. |
|
IConvertible.ToInt64 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt64. |
|
IConvertible.ToSByte | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToSByte. |
|
IConvertible.ToSingle | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToSingle. |
|
IConvertible.ToType | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToType. |
|
IConvertible.ToUInt16 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToUInt16. |
|
IConvertible.ToUInt32 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt32. |
|
IConvertible.ToUInt64 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt64. |
|
IDeserializationCallback.OnDeserialization | Infrastruktur. Wird ausgeführt, wenn die Deserialisierung eines Objekts abgeschlossen ist. |
Der Werttyp Decimal stellt ganze Zahlen im Bereich von 79,228,162,514,264,337,593,543,950,335 bis -79,228,162,514,264,337,593,543,950,335 dar. Der Decimal-Werttyp ist für Finanzberechnungen geeignet, bei denen zahlreiche signifikante Vor- und Nachkommastellen erforderlich sind und keine Rundungsfehler auftreten dürfen. Auch beim Decimal-Typ muss weiter gerundet werden. Vielmehr werden Rundungsfehler minimiert. Im folgenden Code wird z. B. das Ergebnis 0,9999999999999999999999999999 und nicht 1 zurückgegeben.
Wenn das Ergebnis der Division und Multiplikation an die Round-Methode übergeben wird, bleibt die Genauigkeit des Ergebnisses erhalten, wie im folgenden Code dargestellt.
Eine Decimal-Zahl ist ein Gleitkommawert, der aus einem Vorzeichen, einem numerischen Wert mit Ziffern zwischen 0 (null) und 9 sowie einem Skalierungsfaktor besteht, der die Position eines die Vor- und Nachkommastellen des numerischen Werts trennenden Gleitdezimaltrennzeichens angibt.
Die binäre Darstellung eines Decimal-Werts besteht aus einem 1-Bit-Vorzeichen, einer 96-Bit-Ganzzahl und einem Skalierungsfaktor, der zum Dividieren der 96-Bit-Ganzzahl verwendet wird und angibt, welcher Teil ein Dezimalbruch ist. Der Skalierfaktor ist implizit die Zahl 10, potenziert mit einem Exponenten im Bereich von 0 bis 28. Daher hat die binäre Darstellung eines Decimal-Werts das Format ((-296 to 296) / 10(0 bis 28)), wobei -296-1 gleich MinValue und 296-1 gleich MaxValue.
Der Skalierungsfaktor behält außerdem alle nachfolgenden Nullen in einer Decimal-Zahl bei. Nachfolgenden Nullen haben keine Auswirkungen auf den Wert einer Decimal-Zahl bei Vergleichs- und Arithmetikoperationen. Nachfolgende Nullen können jedoch von der ToString-Methode angezeigt werden, wenn eine entsprechende Formatzeichenfolge angewendet wird.
Konvertierungsüberlegungen
Dieser Typ stellt Methoden bereit, die Decimal-Werte in und aus den folgenden Typen konvertieren: SByte, Int16, Int32, Int64, Byte, UInt16, UInt32 und UInt64. Konvertierungen aus diesen ganzzahligen Typen in Decimal sind Erweiterungskonvertierungen, bei denen keine Informationen verloren gehen und keine Ausnahmen ausgelöst werden.
Konvertierungen von Decimal in einen der ganzzahligen Typen sind einschränkende Konvertierungen, die den Decimal-Wert in Richtung 0 (null) auf die nächste Ganzzahl runden. Einige Sprachen, z. B. C#, unterstützen auch die Konvertierung von Decimal-Werten in Char-Werte. Wenn das Ergebnis dieser Konvertierungen nicht im Zieltyp dargestellt werden kann, wird eine OverflowException ausgelöst.
Der Decimal-Typ stellt auch Methoden bereit, mit denen Decimal-Werte in und aus Single und Double konvertiert werden können. Konvertierungen von Decimal in Single oder Double sind einschränkende Konvertierungen, bei denen zwar ein Verlust an Genauigkeit, jedoch kein Verlust an Informationen über die Größe des konvertierten Werts auftreten kann. Die Konvertierung löst keine Ausnahme aus.
Konvertierungen von Single oder Double in Decimal lösen eine OverflowException aus, wenn das Ergebnis der Konvertierung nicht als Decimal dargestellt werden kann.
Im folgenden Codebeispiel wird die Verwendung von Decimal veranschaulicht.
/// <summary> /// Keeping my fortune in Decimals to avoid the round-off errors. /// </summary> class PiggyBank { protected decimal MyFortune; public void AddPenny() { MyFortune = Decimal.Add(MyFortune, .01m); } public decimal Capacity { get { return Decimal.MaxValue; } } public decimal Dollars { get { return Decimal.Floor(MyFortune); } } public decimal Cents { get { return Decimal.Subtract(MyFortune, Decimal.Floor(MyFortune)); } } public override string ToString() { return MyFortune.ToString("C")+" in piggy bank"; } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle Member dieses Typs sind threadsicher. Member, die scheinbar den Zustand einer Instanz ändern, geben in Wirklichkeit eine neue Instanz zurück, die mit dem neuen Wert initialisiert wurde. Wie bei allen anderen Typen müssen Lese- und Schreibzugriffe auf eine freigegebene Variable, die eine Instanz dieses Typs enthält, durch eine Sperre geschützt werden, um die Threadsicherheit zu gewährleisten.
Vorsicht
|
|---|
|
Die Zuweisung einer Instanz dieses Typs ist nicht auf allen Hardwareplattformen threadsicher, da die binäre Darstellung der Instanz u. U. zu groß ist, sodass die Zuweisung nicht in einem einzelnen atomaren Vorgang abgeschlossen werden kann. |
Vorsicht