エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Decimal 構造体

2013/12/12

10 進数を表します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public struct Decimal : IComparable, IComparable<decimal>, 
	IConvertible, IEquatable<decimal>, IFormattable

Decimal 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドDecimal(Double)Decimal の新しいインスタンスを作成し、その値を、指定した倍精度浮動小数点数に設定します。
パブリック メソッドDecimal(Int32)Decimal の新しいインスタンスを初期化して、その値を、指定した 32 ビット符号付き整数に設定します。
パブリック メソッドDecimal(Int32[])Decimal の新しいインスタンスの値を、指定した配列に格納されている、バイナリ形式の 10 進値に初期化します。
パブリック メソッドDecimal(Int64)Decimal の新しいインスタンスを初期化して、その値を、指定した 64 ビット符号付き整数に設定します。
パブリック メソッドDecimal(Single)Decimal の新しいインスタンスを作成し、その値を、指定した単精度浮動小数点数に設定します。
パブリック メソッドDecimal(UInt32)Decimal の新しいインスタンスを初期化して、その値を、指定した 32 ビット符号なし整数に設定します。
パブリック メソッドDecimal(UInt64)Decimal の新しいインスタンスを初期化して、その値を、指定した 64 ビット符号なし整数に設定します。
パブリック メソッドDecimal(Int32, Int32, Int32, Boolean, Byte)Decimal の新しいインスタンスの値を、そのインスタンスの構成部分を指定するパラメーターに従って初期化します。
このページのトップへ

  名前説明
パブリック メソッド静的メンバーAdd指定した 2 つの Decimal 値を加算します。
パブリック メソッド静的メンバーCeiling指定した 10 進数以上の数のうち、最小の整数値を返します。
パブリック メソッド静的メンバーCompare指定した 2 つの Decimal 値を比較し、2 つ目の値と比べて、1 つ目の値が大きい、小さい、または等しいかを示す整数を返します。
パブリック メソッドCompareTo(Decimal)指定した Decimal オブジェクトとこのインスタンスを比較し、指定した Decimal の値と比べて、このインスタンスの値が大きい、小さい、または等しいかを示す整数を返します。
パブリック メソッドCompareTo(Object)指定した Object とこのインスタンスを比較し、指定した Object の値と比べて、このインスタンスの値が大きい、小さい、または等しいかを示す整数を返します。
パブリック メソッド静的メンバーDivide指定した 2 つの Decimal 値を除算します。
パブリック メソッドEquals(Decimal)このインスタンスと指定した Decimal オブジェクトが同じ値を表しているかどうかを示す値を返します。
パブリック メソッドEquals(Object)このインスタンスと指定した Object が同じ型と値を表しているかどうかを示す値を返します。 (ValueType.Equals(Object) をオーバーライドします。)
パブリック メソッド静的メンバーEquals(Decimal, Decimal)Decimal の指定した 2 つのインスタンスが同じ値を表しているかどうかを示す値を返します。
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッド静的メンバーFloor指定した Decimal 数を、負の無限大方向の近似整数に丸めます。
パブリック メソッド静的メンバーGetBits指定した Decimal のインスタンスの値を、それと等価のバイナリ形式に変換します。
パブリック メソッドGetHashCodeこのインスタンスのハッシュ コードを返します。 (ValueType.GetHashCode() をオーバーライドします。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドGetTypeCodeDecimal 値型の TypeCode を返します。
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド静的メンバーMultiply指定した 2 つの Decimal 値を乗算します。
パブリック メソッド静的メンバーNegate指定した Decimal 値に -1 を乗算した結果を返します。
パブリック メソッド静的メンバーParse(String)数値の文字列形式を、等価の Decimal に変換します。
パブリック メソッド静的メンバーParse(String, NumberStyles)指定のスタイルで表現された数値の文字列形式を、それと等価な Decimal に変換します。
パブリック メソッド静的メンバーParse(String, IFormatProvider)指定したカルチャ固有の書式情報を使用して、文字列形式の数値をそれと等価の Decimal に変換します。
パブリック メソッド静的メンバーParse(String, NumberStyles, IFormatProvider)指定したスタイルとカルチャ固有の書式を使用して、文字列形式の数値を等価の Decimal に変換します。
パブリック メソッド静的メンバーRemainder2 つの Decimal 値の除算後の剰余を計算します。
パブリック メソッド静的メンバーRoundDecimal 値を、指定した小数点以下の桁数に丸めます。
パブリック メソッド静的メンバーSubtract指定した Decimal 値から、指定したもう 1 つの値を減算します。
パブリック メソッド静的メンバーToByte指定した Decimal の値を、等価の 8 ビット符号なし整数に変換します。
パブリック メソッド静的メンバーToDouble指定した Decimal の値を、それと等価の倍精度浮動小数点数に変換します。
パブリック メソッド静的メンバーToInt16指定した Decimal の値を、等価の 16 ビット符号付き整数に変換します。
パブリック メソッド静的メンバーToInt32指定した Decimal の値を、等価の 32 ビット符号付き整数に変換します。
パブリック メソッド静的メンバーToInt64指定した Decimal の値を、等価の 64 ビット符号付き整数に変換します。
パブリック メソッド静的メンバーToSByte指定した Decimal の値を、等価の 8 ビット符号付き整数に変換します。
パブリック メソッド静的メンバーToSingle指定した Decimal の値を、それと等価の単精度浮動小数点数に変換します。
パブリック メソッドToString()このインスタンスの数値を、それと等価の文字列形式に変換します。 (ValueType.ToString() をオーバーライドします。)
パブリック メソッドToString(IFormatProvider)指定されたカルチャ固有の書式情報を使用して、このインスタンスの数値を、それと等価の文字列形式に変換します。
パブリック メソッドToString(String)指定された書式を使用して、このインスタンスの数値を、それと等価の文字列形式に変換します。
パブリック メソッドToString(String, IFormatProvider)指定された書式およびカルチャ固有の書式情報を使用して、このインスタンスの数値を、それと等価の文字列形式に変換します。
パブリック メソッド静的メンバーToUInt16指定した Decimal の値を、等価の 16 ビット符号なし整数に変換します。
パブリック メソッド静的メンバーToUInt32指定した Decimal の値を、等価の 32 ビット符号なし整数に変換します。
パブリック メソッド静的メンバーToUInt64指定した Decimal の値を、等価の 64 ビット符号なし整数に変換します。
パブリック メソッド静的メンバーTruncate指定した Decimal の整数の桁を返します。小数の桁は破棄されます。
パブリック メソッド静的メンバーTryParse(String, Decimal)数値の文字列形式を、等価の Decimal に変換します。戻り値は、変換が成功したか失敗したかを示します。
パブリック メソッド静的メンバーTryParse(String, NumberStyles, IFormatProvider, Decimal)指定したスタイルとカルチャ固有の書式を使用して、文字列形式の数値を等価の Decimal に変換します。戻り値は、変換が成功したか失敗したかを示します。
このページのトップへ

  名前説明
パブリック演算子静的メンバーAddition指定した 2 つの Decimal 値を加算します。
パブリック演算子静的メンバーDecrementDecimal オペランドを 1 だけデクリメントします。
パブリック演算子静的メンバーDivision指定した 2 つの Decimal 値を除算します。
パブリック演算子静的メンバーEqualityDecimal の 2 つのインスタンスが等しいかどうかを示す値を返します。
パブリック演算子静的メンバーExplicit(Decimal to Single)Decimal を単精度浮動小数点数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to SByte)Decimal を 8 ビット符号付き整数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to Int64)Decimal を 64 ビット符号付き整数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to UInt64)Decimal を 64 ビット符号なし整数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to UInt32)Decimal を 32 ビット符号なし整数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to UInt16)Decimal を 16 ビット符号なし整数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to Char)Decimal を Unicode 文字に変換します。
パブリック演算子静的メンバーExplicit(Decimal to Byte)Decimal を 8 ビット符号なし整数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to Double)Decimal を倍精度浮動小数点数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to Int32)Decimal を 32 ビット符号付き整数に変換します。
パブリック演算子静的メンバーExplicit(Decimal to Int16)Decimal を 16 ビット符号付き整数に変換します。
パブリック演算子静的メンバーExplicit(Double to Decimal)倍精度浮動小数点数を Decimal に変換します。
パブリック演算子静的メンバーExplicit(Single to Decimal)単精度浮動小数点数を Decimal に変換します。
パブリック演算子静的メンバーGreaterThan指定した Decimal が、指定したもう 1 つの Decimal より大きいかどうかを示す値を返します。
パブリック演算子静的メンバーGreaterThanOrEqual指定した Decimal が、指定したもう 1 つの Decimal 以上かどうかを示す値を返します。
パブリック演算子静的メンバーImplicit(Byte to Decimal)8 ビット符号なし整数を Decimal に変換します。
パブリック演算子静的メンバーImplicit(Char to Decimal)Unicode 文字を Decimal に変換します。
パブリック演算子静的メンバーImplicit(Int16 to Decimal)16 ビット符号付き整数を Decimal に変換します。
パブリック演算子静的メンバーImplicit(Int32 to Decimal)32 ビット符号付き整数を Decimal に変換します。
パブリック演算子静的メンバーImplicit(Int64 to Decimal)64 ビット符号付き整数を Decimal に変換します。
パブリック演算子静的メンバーImplicit(SByte to Decimal)8 ビット符号付き整数を Decimal に変換します。
パブリック演算子静的メンバーImplicit(UInt16 to Decimal)16 ビット符号なし整数を Decimal に変換します。
パブリック演算子静的メンバーImplicit(UInt32 to Decimal)32 ビット符号なし整数を Decimal に変換します。
パブリック演算子静的メンバーImplicit(UInt64 to Decimal)64 ビット符号なし整数を Decimal に変換します。
パブリック演算子静的メンバーIncrementDecimal オペランドを 1 だけインクリメントします。
パブリック演算子静的メンバーInequalityDecimal の 2 つのインスタンスが等しくないかどうかを示す値を返します。
パブリック演算子静的メンバーLessThan指定した Decimal が、指定したもう 1 つの Decimal より小さいかどうかを示す値を返します。
パブリック演算子静的メンバーLessThanOrEqual指定した Decimal が、指定したもう 1 つの Decimal 以下であるかどうかを示す値を返します。
パブリック演算子静的メンバーModulus指定した 2 つの Decimal 値を除算した結果の剰余を返します。
パブリック演算子静的メンバーMultiply指定した 2 つの Decimal 値を乗算します。
パブリック演算子静的メンバーSubtraction指定した 2 つの Decimal 値を減算します。
パブリック演算子静的メンバーUnaryNegation指定した Decimal オペランドの値を無効にします。
パブリック演算子静的メンバーUnaryPlusDecimal オペランドの値 (オペランドの符号は不変) を返します。
このページのトップへ

  名前説明
パブリック フィールド静的メンバーMaxValueDecimal の最大有効値を表します。このフィールドは定数であり、読み取り専用です。
パブリック フィールド静的メンバーMinusOne負の 1 (-1) を表します。
パブリック フィールド静的メンバーMinValueDecimal の最小有効値を表します。このフィールドは定数であり、読み取り専用です。
パブリック フィールド静的メンバーOne数値 1 を表します。
パブリック フィールド静的メンバーZero数値 0 を表します。
このページのトップへ

  名前説明
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToBooleanインフラストラクチャ。 このメンバーの説明については、IConvertible.ToBoolean のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToByteインフラストラクチャ。 このメンバーの説明については、IConvertible.ToByte のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToCharインフラストラクチャ。 この変換はサポートされません。このメソッドを使用しようとすると、InvalidCastException がスローされます。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToDateTimeインフラストラクチャ。 この変換はサポートされません。このメソッドを使用しようとすると、InvalidCastException がスローされます。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToDecimalインフラストラクチャ。 このメンバーの説明については、IConvertible.ToDecimal のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToDoubleインフラストラクチャ。 このメンバーの説明については、IConvertible.ToDouble のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToInt16インフラストラクチャ。 このメンバーの説明については、IConvertible.ToInt16 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToInt32インフラストラクチャ。 このメンバーの説明については、IConvertible.ToInt32 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToInt64インフラストラクチャ。 このメンバーの説明については、IConvertible.ToInt64 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToSByteインフラストラクチャ。 このメンバーの説明については、IConvertible.ToSByte のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToSingleインフラストラクチャ。 このメンバーの説明については、IConvertible.ToSingle のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToTypeインフラストラクチャ。 このメンバーの説明については、IConvertible.ToType のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToUInt16インフラストラクチャ。 このメンバーの説明については、IConvertible.ToUInt16 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToUInt32インフラストラクチャ。 このメンバーの説明については、IConvertible.ToInt32 のトピックを参照してください。
明示的なインターフェイスの実装プライベート メソッドIConvertible.ToUInt64インフラストラクチャ。 このメンバーの説明については、IConvertible.ToInt64 のトピックを参照してください。
このページのトップへ

Decimal 値型は、正の 79,228,162,514,264,337,593,543,950,335 から負の 79,228,162,514,264,337,593,543,950,335 までの範囲の 10 進数を表します。Decimal 値型は、多数の有効な整数桁と小数桁を必要とし、丸め誤差を使用しない財務計算に適しています。Decimal 型では、丸めの必要性はなくなっていません。その代わりに、丸め誤差が最小限に抑えられています。たとえば、次のコード例では、結果は 1 ではなく、0.9999999999999999999999999999 になります。


decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 0.9999999999999999999999999999
outputBlock.Text += dividend / divisor * divisor + "\n";


次のコードに示すように、除算または乗算の結果が Round メソッドに渡されても、結果の精度は失われません。


decimal dividend = Decimal.One;
decimal divisor = 3;
// The following displays 1.00
outputBlock.Text += Math.Round(dividend / divisor * divisor, 2) + "\n";


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 値を SByteInt16Int32Int64ByteUInt16UInt32、および UInt64 に変換したり、その逆方向に変換したりするメソッドを提供します。これらの整数型から Decimal への変換は、情報が失われたり例外がスローされたりすることのない拡大変換です。

Decimal からいずれかの整数型への変換は、Decimal 値を 0 方向の近似整数値に丸める縮小変換です。C# などの一部の言語では、Decimal 値の Char 値への変換もサポートされています。これらの変換の結果を変換先の型で表現できない場合は、OverflowException がスローされます。

Decimal 型は、Decimal 値を Single および Double に変換したり、その逆方向に変換したりするメソッドも提供します。Decimal から Single または Double への変換は縮小変換であるため、精度が失われる可能性がありますが、変換後の値の大きさに関する情報が失われることはありません。この変換では例外はスローされません。

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

実装されているインターフェイス

この型は、IComparableIComparable<T>IFormattableIConvertible の各インターフェイスを実装します。この型の明示的な IConvertible インターフェイス メンバーの実装の代わりに、Convert クラスを使用します。

Decimal の使用方法を次のコード例に示します。


/// <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 Phone OS

サポート: 8.0, 7.1, 7.0

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

注意注意:

この型のインスタンスのバイナリ表現は大きすぎて 1 回の分割不可能操作に割り当てられないため、このインスタンスを割り当てることはすべてのハードウェア プラットフォームでスレッド セーフではありません。

表示:
© 2015 Microsoft