Decimal 構造体
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Structure Decimal Implements IFormattable, IComparable, IConvertible, IComparable(Of Decimal), _ IEquatable(Of 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>

Decimal 値型は、正の 79,228,162,514,264,337,593,543,950,335 から負の 79,228,162,514,264,337,593,543,950,335 までの範囲の 10 進数を表します。Decimal 値型は、多数の有効な整数桁と小数桁を必要とし、丸め誤差を使用しない財務計算に適しています。
10 進数は、符号、値の各桁の範囲が 0 から 9 までの数値、数値の整数部と小数部を分ける浮動小数点の位置を示すスケール ファクタで構成される浮動小数点値です。
Decimal 値のバイナリ表現は、1 ビットの符号、96 ビットの整数、および 96 ビットの整数値を除算し、小数部を指定するために使用するスケール ファクタで構成されます。スケール ファクタは、暗黙で数値 10 になり、0 から 28 の範囲の指数で累乗されます。したがって、Decimal 値のバイナリ表現は、((-296 ~ 296) / 10(0 ~ 28)) の形式です。-296-1 は MinValue に等しく、296-1 は MaxValue に等しい値です。
スケール ファクタでは、Decimal 数値内の後続のゼロも保持されます。後続のゼロは、算術演算または比較演算では Decimal 数値の値に影響しません。ただし、適切な書式指定文字列を適用すると、後続のゼロを ToString メソッドによって確認できます。
変換に関する考慮事項この型は、Decimal 値を型 Char、SByte、Int16、Int32、Int64、Byte、UInt16、UInt32、および UInt64 に変換したり、その逆方向に変換したりするメソッドを提供します。他の型から Decimal への変換は、情報が失われたり例外がスローされることのない拡大変換です。
Decimal から他の型への変換は、Decimal 値を 0 方向の近似整数値に丸める縮小変換です。変換結果を変換先の型で表現できない場合は、OverflowException がスローされます。
この型は、Decimal 値を Single および Double に変換したり、その逆方向に変換したりするメソッドを提供します。Decimal から Single または Double への変換は縮小変換であるため、精度が失われる可能性がありますが、変換後の値の大きさに関する情報が失われることはありません。この変換では例外はスローされません。
Single または Double から Decimal への変換では、変換結果を Decimal として表すことができない場合に OverflowException がスローされます。

' 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"; } }


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Decimal 構造体のページへのリンク