Assembly : mscorlib (dans mscorlib.dll)
Syntaxe<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Structure Decimal Implements IFormattable, IComparable, IConvertible, IComparable(Of Decimal), _ IEquatable(Of Decimal)
Dim instance As Decimal
[SerializableAttribute] [ComVisibleAttribute(true)] public struct Decimal : IFormattable, IComparable, IConvertible, IComparable<decimal>, IEquatable<decimal>
[SerializableAttribute] [ComVisibleAttribute(true)] public value class Decimal : IFormattable, IComparable, IConvertible, IComparable<Decimal>, IEquatable<Decimal>
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public final class Decimal extends ValueType implements IFormattable, IComparable, IConvertible, IComparable<Decimal>, IEquatable<Decimal>
JScript prend en charge l'utilisation de structures mais pas la déclaration de nouvelles structures.
NotesLe type valeur Decimal représente des nombres décimaux dont les valeurs varient de plus 79 228 162 514 264 337 593 543 950 335 à moins 79 228 162 514 264 337 593 543 950 335.Le type valeur Decimal convient particulièrement pour les opérations de calculs financiers nécessitant un nombre important de chiffres intégraux et fractionnaires significatifs, sans erreurs d'arrondi.
Un nombre décimal est une valeur à virgule flottante composée d'un signe, d'une valeur numérique dont les chiffres sont compris entre 0 et 9, et d'un facteur d'échelle qui indique la position d'une virgule décimale flottante séparant la partie entière de la partie fractionnaire de la valeur numérique.
La représentation binaire d'une valeur Decimal comporte un signe 1 bit, un nombre entier 96 bits et un facteur d'échelle servant à diviser l'entier 96 bits et à spécifier la partie correspondant à une fraction décimale. Le facteur d'échelle est implicitement le nombre 10, élevé à la puissance d'un exposant variant de 0 à 28. Par conséquent, la représentation binaire d'une valeur Decimal se présente sous la forme ((-296 à 296) / 10(0 à 28)), où -296 est égal à MinValue, et 296 est égal à MaxValue.
Le facteur d'échelle conserve également tous les zéros de fin dans un nombre Decimal. Les zéros de fin n'affectent pas la valeur d'un nombre Decimal dans les opérations arithmétiques ou de comparaison. Toutefois, les zéros de fin peuvent être révélés par la méthode ToString si une chaîne de mise en forme appropriée est appliquée.
Considérations sur la conversion
Ce type fournit des méthodes utilisées pour la conversion de valeurs Decimal en type Char, SByte, Int16, Int32, Int64, Byte, UInt16, UInt32 et UInt64, ou à partir de ces types. Les conversions d'autres types en Decimal sont des conversions étendues qui ne perdent jamais d'informations et ne provoquent pas la levée d'exceptions.
Les conversions de Decimal en d'autres types sont des conversions restrictives qui arrondissent la valeur Decimal à la valeur entière la plus proche de zéro. Lorsque le résultat de la conversion ne peut pas être représenté dans le type de destination, OverflowException est levé.
Ce type fournit des méthodes qui servent à convertir des valeurs Decimal en Single et Double, ou à partir de ces derniers. Les conversions de Decimal en Single et Double sont des conversions restrictives qui peuvent entraîner une perte de précision, mais non la perte des informations se rapportant à la magnitude de la valeur convertie. Aucune exception n'est levée lors de la conversion.
Les conversions de Single ou Double en Decimal lèvent OverflowException si le résultat de la conversion ne peut pas être représenté en tant que Decimal.
Interfaces implémentées
Ce type implémente les interfaces IComparable, IComparable, IFormattable et IConvertible. Pour les conversions, utilisez la classe Convert au lieu de l'implémentation du membre d'interface explicite de IConvertible de ce type.
ExempleL'exemple de code suivant illustre l'utilisation de Decimal.
' Keeping my fortune in Decimals to avoid the round-off errors. Class PiggyBank Protected MyFortune As Decimal Public Sub AddPenny() MyFortune = [Decimal].Add(MyFortune, 0.01D) End Sub Public ReadOnly Property Capacity() As Decimal Get Return [Decimal].MaxValue End Get End Property Public ReadOnly Property Dollars() As Decimal Get Return [Decimal].Floor(MyFortune) End Get End Property Public ReadOnly Property Cents() As Decimal Get Return [Decimal].Subtract(MyFortune, [Decimal].Floor(MyFortune)) End Get End Property Public Overrides Function ToString() As String Return MyFortune.ToString("C") + " in piggy bank" End Function End Class
/// <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"; } }
/// <summary> /// Keeping my fortune in Decimals to avoid the round-off errors. /// </summary> public ref class PiggyBank { protected: Decimal MyFortune; public: void AddPenny() { MyFortune = System::Decimal::Add( MyFortune, Decimal(.01) ); } System::Decimal Capacity() { return MyFortune.MaxValue; } Decimal Dollars() { return Decimal::Floor( MyFortune ); } Decimal Cents() { return Decimal::Subtract( MyFortune, Decimal::Floor( MyFortune ) ); } virtual System::String^ ToString() override { return MyFortune.ToString("C")+" in piggy bank"; } }; }
/// <summary> /// Keeping my fortune in Decimals to avoid the round-off errors. /// </summary> class PiggyBank { protected System.Decimal myFortune; public void AddPenny() { myFortune = Decimal.Add(myFortune, System.Convert.ToDecimal(0.01)); } //AddPenny /** @property */ public System.Decimal get_Capacity() { return Decimal.MaxValue; } //get_Capacity /** @property */ public System.Decimal get_Dollars() { return Decimal.Floor(myFortune); } //get_Dollars /** @property */ public System.Decimal get_Cents() { return Decimal.Subtract(myFortune, Decimal.Floor(myFortune)); } //get_Cents public String ToString() { return myFortune.ToString("C") + " in piggy bank"; } //ToString } //PiggyBank
/// <summary> /// Keeping my fortune in Decimals to avoid the round-off errors. /// </summary> class PiggyBank { protected var MyFortune : Decimal; public function AddPenny() { MyFortune = Decimal.Add(MyFortune, 0.01); } public function get Capacity() : Decimal { return Decimal.MaxValue; } public function get Dollars() : Decimal { return Decimal.Floor(MyFortune); } public function get Cents() : Decimal { return Decimal.Subtract(MyFortune, Decimal.Floor(MyFortune)); } public function ToString() : String { return MyFortune.ToString("C")+" in piggy bank"; } }
Sécurité des threads
Plates-formesWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ