Decimal 構造体

定義

10 進数の浮動小数点数を表します。

``public value class System::Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IFormattable``
``public value class System::Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IFormattable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable``
``public value class System::Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, ISpanFormattable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable``
``public value class System::Decimal : IComparable, IComparable<System::Decimal>, IConvertible, IEquatable<System::Decimal>, IFormattable, System::Runtime::Serialization::IDeserializationCallback``
``public value class System::Decimal : IComparable, IConvertible, IFormattable``
``public value class System::Decimal : IComparable, IComparable<System::Decimal>, IEquatable<System::Decimal>, IFormattable``
``public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable``
``public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable``
``public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, ISpanFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable``
``public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable, System.Runtime.Serialization.IDeserializationCallback``
``````[System.Serializable]
public struct Decimal : IComparable, IConvertible, IFormattable``````
``````[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable``````
``````[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Decimal : IComparable, IComparable<decimal>, IConvertible, IEquatable<decimal>, IFormattable, System.Runtime.Serialization.IDeserializationCallback``````
``public struct Decimal : IComparable, IComparable<decimal>, IEquatable<decimal>, IFormattable``
``````type decimal = struct
interface IConvertible
interface IFormattable``````
``````type decimal = struct
interface IConvertible
interface IFormattable
interface IDeserializationCallback
interface ISerializable``````
``````type decimal = struct
interface IConvertible
interface ISpanFormattable
interface IFormattable
interface IDeserializationCallback
interface ISerializable``````
``````type decimal = struct
interface IConvertible
interface IFormattable
interface IDeserializationCallback``````
``````[<System.Serializable>]
type decimal = struct
interface IFormattable
interface IConvertible``````
``````[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type decimal = struct
interface IFormattable
interface IConvertible``````
``````[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type decimal = struct
interface IFormattable
interface IConvertible
interface IDeserializationCallback``````
``````type decimal = struct
interface IFormattable``````
``````Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IEquatable(Of Decimal), IFormattable``````
``````Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IDeserializationCallback, IEquatable(Of Decimal), IFormattable, ISerializable``````
``````Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IDeserializationCallback, IEquatable(Of Decimal), ISerializable, ISpanFormattable``````
``````Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IConvertible, IDeserializationCallback, IEquatable(Of Decimal), IFormattable``````
``````Public Structure Decimal
Implements IComparable, IConvertible, IFormattable``````
``````Public Structure Decimal
Implements IComparable, IComparable(Of Decimal), IEquatable(Of Decimal), IFormattable``````

Decimal

例

``````   /// <summary>
/// Keeping my fortune in Decimals to avoid the round-off errors.
/// </summary>
public ref class PiggyBank
{
protected:
Decimal MyFortune;

public:
{
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 decimal MyFortune;

}

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";
}
}
``````
``````' Keeping my fortune in Decimals to avoid the round-off errors.
Class PiggyBank
Protected MyFortune As Decimal

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
``````

注釈

Decimal値型は、正の79228162514264337593543950335から負の79228162514264337593543950335までの10進数値を表します。 の既定値 `Decimal` は0です。 Decimal値型は、大量の重要な整数と小数部が必要で、丸め誤差がない財務計算に適しています。 型では、丸め処理は不要 Decimal です。 丸めに起因するエラーが最小限に抑えられます。 たとえば、次のコードでは、1ではなく0.9999999999999999999999999999 の結果が生成されます。

``````using namespace System;

void main()
{
Decimal dividend = Decimal::One;
Decimal divisor = 3;
// The following displays 0.9999999999999999999999999999 to the console
Console::WriteLine(dividend/divisor * divisor);
}
``````
``````decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 0.9999999999999999999999999999 to the console
Console.WriteLine(dividend/divisor * divisor);
``````
``````Dim dividend As Decimal = Decimal.One
Dim divisor As Decimal = 3
' The following displays 0.9999999999999999999999999999 to the console
Console.WriteLine(dividend/divisor * divisor)
``````

``````using namespace System;

void main()
{
Decimal dividend = Decimal::One;
Decimal divisor = 3;
// The following displays 1.00 to the console
Console::WriteLine(Math::Round(dividend/divisor * divisor, 2));
}
``````
``````decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 1.00 to the console
Console.WriteLine(Math.Round(dividend/divisor * divisor, 2));
``````
``````Dim dividend As Decimal = Decimal.One
Dim divisor As Decimal = 3
' The following displays 1.00 to the console
Console.WriteLine(Math.Round(dividend/divisor * divisor, 2))
``````

10進数は、符号、値の各桁の範囲が 0 ~ 9 の数値、および数値の整数部と小数部を区切る浮動小数点の位置を示す小数点以下の桁数で構成される浮動小数点値です。

また、スケールファクターによって、数値の後続のゼロも保持され Decimal ます。 後続のゼロは、 Decimal 算術演算または比較演算での数値には影響しません。 ただし、 ToString 適切な書式指定文字列が適用されている場合は、メソッドによって後続のゼロが明らかになることがあります。

変換に関する考慮事項

この型は、、、、、、、 Decimal 、およびの値との間で値を変換するメソッドを提供 SByte Int16 Int32 Int64 Byte UInt16 UInt32 UInt64 します。 これらの整数型からへの変換 Decimal は、情報が失われたり例外をスローしたりしない拡大変換です。

から Decimal 任意の整数型への変換は、 Decimal 値を最も近い整数値に丸めた縮小変換であり、0になります。 C# などの一部の言語では、値から値への変換もサポートされて Decimal Char います。 これらの変換の結果を変換先の型で表すことができない場合は、 OverflowException 例外がスローされます。

Decimal型には、値と値との間で値を変換するメソッドも用意されて Decimal Single Double います。 から Decimal またはへの変換 Single Double は縮小変換であり、変換された値の大きさに関する情報ではなく、精度が失われる可能性があります。 この変換では、例外はスローされません。

Single Double 変換の結果をとして表現できない場合、またはからへの変換によっ Decimal OverflowException て例外がスローさ Decimal れます。

Decimal 型の値に対する演算の実行

2つの値を比較するには、 Decimal 標準の数値比較演算子を使用するか、 CompareTo メソッドまたはメソッドを呼び出すことができ Equals ます。

また、クラスのメンバーを呼び出して、数値の絶対値を取得したり、 Math 2 つの値の最大値または最小値を調べたり、数値の符号を取得したり、数値を丸めたりするなど、さまざまな数値演算を実行することもでき Decimal ます。

コンストラクター

 Decimal の新しいインスタンスを初期化し、その値を、指定した倍精度浮動小数点数に設定します。 Decimal の新しいインスタンスを初期化し、その値を、指定した 32 ビット符号付き整数に設定します。 Decimal の新しいインスタンスの値を、そのインスタンスの構成部分を指定するパラメーターに従って初期化します。 Decimal の新しいインスタンスの値を、指定した配列に格納されている、バイナリ形式の 10 進値に初期化します。 Decimal の新しいインスタンスを初期化し、その値を、指定した 64 ビット符号付き整数に設定します。 Decimal の新しいインスタンスを、指定したスパンに格納されている、バイナリ形式の 10 進値に初期化します。 Decimal の新しいインスタンスを初期化し、その値を、指定した単精度浮動小数点数に設定します。 Decimal の新しいインスタンスを初期化し、その値を、指定した 32 ビット符号なし整数に設定します。 Decimal の新しいインスタンスを初期化し、その値を、指定した 64 ビット符号なし整数に設定します。

フィールド

 Decimal の最大有効値を表します。 このフィールドは定数であり、読み取り専用です。 負の 1 (-1) を表します。 Decimal の最小有効値を表します。 このフィールドは定数であり、読み取り専用です。 数値 1 を表します。 数値 0 を表します。

メソッド

 指定した 2 つの Decimal 値を加算します。 指定した 10 進数以上の数のうち、最小の整数値を返します。 2 つの指定した Decimal 値を比較します。 指定した Decimal オブジェクトとこのインスタンスを比較し、これらの相対値の比較を返します。 指定したオブジェクトとこのインスタンスを比較し、これらの相対値の比較を返します。 2 つの指定した Decimal 値を除算します。 このインスタンスと指定した Decimal オブジェクトが同じ値を表しているかどうかを示す値を返します。 Decimal の指定された 2 つのインスタンスが同じ値を表しているかどうかを示す値を返します。 このインスタンスと指定した Object が同じ型と値を表しているかどうかを示す値を返します。 指定した Decimal 数を、負の無限大方向の近似整数に丸めます。 OLE オートメーション通貨値を格納している指定した 64 ビット符号付き整数を、それと等価の Decimal 値に変換します。 指定した Decimal のインスタンスの値を、それと等価のバイナリ形式に変換します。 指定した Decimal のインスタンスの値を、それと等価のバイナリ形式に変換します。 このインスタンスのハッシュ コードを返します。 Decimal 値型の TypeCode を返します。 指定された 2 つの Decimal 値を乗算します。 指定した Decimal 値に -1 を乗算した結果を返します。 指定したスタイルとカルチャ固有の書式を使用して、数値のスパン表現を等価の Decimal に変換します。 数値の文字列形式を、それと等価の Decimal に変換します。 指定したカルチャ固有の書式情報を使用して、文字列形式の数値をそれと等価の Decimal に変換します。 指定のスタイルで表現された数値の文字列形式を、それと等価な Decimal に変換します。 指定したスタイルとカルチャ固有の書式を使用して、文字列形式の数値をそれと等価の Decimal に変換します。 2 つの Decimal 値の除算後の剰余を計算します。 10 進値を最も近い整数に丸めます。 Decimal 値を、指定した小数点以下の桁数に丸めます。 指定した丸め方法を使用して、10 進数の値を指定した有効桁数に丸します。 指定した丸め方法を使用して、10 進数の値を整数に丸します。 指定した Decimal 値から、指定したもう 1 つの値を減算します。 指定した Decimal の値を、等価の 8 ビット符号なし整数に変換します。 指定した Decimal の値を、それと等価の倍精度浮動小数点数に変換します。 指定した Decimal の値を、等価の 16 ビット符号付き整数に変換します。 指定した Decimal の値を、等価の 32 ビット符号付き整数に変換します。 指定した Decimal の値を、等価の 64 ビット符号付き整数に変換します。 指定した Decimal 値を、64 ビット符号付き整数に格納されるそれと等価の OLE オートメーション通貨値に変換します。 指定した Decimal の値を、等価の 8 ビット符号付き整数に変換します。 指定した Decimal の値を、それと等価の単精度浮動小数点数に変換します。 このインスタンスの数値を、それと等価な文字列形式に変換します。 このインスタンスの数値を、指定したカルチャ固有の書式情報を使用して、それと等価な文字列形式に変換します。 指定した書式を使用して、このインスタンスの数値を、それと等価な文字列形式に変換します。 このインスタンスの数値を、指定した書式およびカルチャ固有の書式情報を使用して、それと等価な文字列形式に変換します。 指定した Decimal の値を、等価の 16 ビット符号なし整数に変換します。 指定した Decimal の値を、等価の 32 ビット符号なし整数に変換します。 指定した Decimal の値を、等価の 64 ビット符号なし整数に変換します。 指定した Decimal の整数の桁を返します。小数の桁は破棄されます。 現在の 10 進数型インスタンスの値の、指定した文字スパンへの書式設定を試みます。 指定した Decimal の値を、それと等価なバイナリ形式に変換しようとします。 指定したスタイルとカルチャ固有の書式を使用して、数値のスパン表現を等価の Decimal に変換します。 戻り値は変換が成功したか失敗したかを示します。 指定したスタイルとカルチャ固有の書式を使用して、数値のスパン表現を等価の Decimal に変換します。 戻り値は変換が成功したか失敗したかを示します。 数値の文字列形式を、それと等価の Decimal に変換します。 戻り値は変換が成功したか失敗したかを示します。 指定したスタイルとカルチャ固有の書式を使用して、文字列形式の数値をそれと等価の Decimal に変換します。 戻り値は変換が成功したか失敗したかを示します。

演算子

 指定した 2 つの Decimal 値を加算します。 Decimal オペランドを 1 だけデクリメントします。 2 つの指定した Decimal 値を除算します。 2 つの Decimal 値が等しいかどうかを示す値を返します。 Decimal から 8 ビット符号なし整数への明示的な変換を定義します。 Decimal から Unicode 文字への明示的な変換を定義します。 Decimal から倍精度浮動小数点数への明示的な変換を定義します。 Decimal から 16 ビット符号付き整数への明示的な変換を定義します。 Decimal から 32 ビット符号付き整数への明示的な変換を定義します。 Decimal から 64 ビット符号付き整数への明示的な変換を定義します。 Decimal から 8 ビット符号付き整数への明示的な変換を定義します。 この API は、CLS に準拠していません。 Decimal から単精度浮動小数点数への明示的な変換を定義します。 Decimal から 16 ビット符号なし整数への明示的な変換を定義します。 この API は、CLS に準拠していません。 Decimal から 32 ビット符号なし整数への明示的な変換を定義します。 この API は、CLS に準拠していません。 Decimal から 64 ビット符号なし整数への明示的な変換を定義します。 この API は、CLS に準拠していません。 倍精度浮動小数点数から Decimal への明示的な変換を定義します。 単精度浮動小数点数から Decimal への明示的な変換を定義します。 指定した Decimal が、指定した別の Decimal より大きいかどうかを示す値を返します。 指定した Decimal が、指定した別の Decimal 以上かどうかを示す値を返します。 8 ビット符号なし整数値から Decimal への暗黙的な変換を定義します。 Unicode 文字から Decimal への暗黙的な変換を定義します。 16 ビット符号付き整数の Decimal への暗黙的な変換を定義します。 32 ビット符号付き整数の Decimal への暗黙的な変換を定義します。 64 ビット符号付き整数の Decimal への暗黙的な変換を定義します。 8 ビット符号付き整数値から Decimal への暗黙的な変換を定義します。 この API は、CLS に準拠していません。 16 ビット符号なし整数値から Decimal への暗黙的な変換を定義します。 この API は、CLS に準拠していません。 32 ビット符号なし整数値から Decimal への暗黙的な変換を定義します。 この API は、CLS に準拠していません。 64 ビット符号なし整数値から Decimal への暗黙的な変換を定義します。 この API は、CLS に準拠していません。 Decimal オペランドを 1 だけインクリメントします。 2 つの Decimal オブジェクトの値が異なるかどうかを示す値を返します。 指定した Decimal が、指定した別の Decimal より小さいかどうかを示す値を返します。 指定した Decimal が、指定したもう 1 つの Decimal 以下であるかどうかを示す値を返します。 指定した 2 つの Decimal 値を除算した結果の剰余を返します。 指定された 2 つの Decimal 値を乗算します。 2 つの指定した Decimal 値で減算を実行します。 指定した Decimal オペランドの値の符号を逆にします。 Decimal オペランドの値 (オペランドの符号は不変) を返します。

明示的なインターフェイスの実装

 現在のインスタンスを同じ型の別のオブジェクトと比較し、現在のインスタンスの並べ替え順序での位置が、比較対象のオブジェクトと比べて前か、後か、または同じかを示す整数を返します。 インスタンスの TypeCode を返します。 このメンバーの詳細については、「ToBoolean(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToByte(IFormatProvider)」をご覧ください。 この変換はサポートされていません。 このメソッドを使用しようとすると、InvalidCastException がスローされます。 この変換はサポートされていません。 このメソッドを使用しようとすると、InvalidCastException がスローされます。 このメンバーの詳細については、「ToDecimal(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToDouble(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToInt16(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToInt32(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToInt64(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToSByte(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToSingle(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToType(Type, IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToUInt16(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToInt32(IFormatProvider)」をご覧ください。 このメンバーの詳細については、「ToInt64(IFormatProvider)」をご覧ください。 オブジェクトの逆シリアル化の完了後に実行します。 SerializationInfo に、オブジェクトをシリアル化するために必要なデータを設定します。

スレッド セーフ

この型のすべてのメンバーは、スレッドセーフです。 インスタンスの状態を変更するように見えるメンバーは、実際には新しい値で初期化された新しいインスタンスを返します。 他の型と同様に、この型のインスタンスを含む共有変数の読み取りと書き込みは、スレッドセーフを保証するためにロックによって保護される必要があります。