내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Decimal 구조체

2013-12-13

10진수를 나타냅니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

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

Decimal 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드Decimal(Double)Decimal의 새 인스턴스를 지정된 배정밀도 부동 소수점 숫자의 값으로 초기화합니다.
Public 메서드Decimal(Int32)Decimal의 새 인스턴스를 지정된 32비트의 부호 있는 정수 값으로 초기화합니다.
Public 메서드Decimal(Int32[])Decimal의 새 인스턴스를 이진으로 표시되며 지정된 배열에 포함된 10진 값으로 초기화합니다.
Public 메서드Decimal(Int64)Decimal의 새 인스턴스를 지정된 64비트의 부호 있는 정수 값으로 초기화합니다.
Public 메서드Decimal(Single)Decimal의 새 인스턴스를 지정된 단정밀도 부동 소수점 숫자의 값으로 초기화합니다.
Public 메서드Decimal(UInt32)Decimal의 새 인스턴스를 지정된 32비트의 부호 없는 정수 값으로 초기화합니다.
Public 메서드Decimal(UInt64)Decimal의 새 인스턴스를 지정된 64비트의 부호 없는 정수 값으로 초기화합니다.
Public 메서드Decimal(Int32, Int32, Int32, Boolean, Byte)인스턴스의 구성 부분을 지정하는 매개 변수에서 Decimal의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 메서드정적 멤버Add지정된 두 개의 Decimal 값을 추가합니다.
Public 메서드정적 멤버Ceiling지정된 10진수보다 크거나 같은 최소 정수 값을 반환합니다.
Public 메서드정적 멤버Compare지정된 두 Decimal 값을 비교하고 첫째 값이 둘째 값보다 큰지, 작은지 또는 같은지를 나타내는 정수를 반환합니다.
Public 메서드CompareTo(Decimal)이 인스턴스를 지정된 Decimal 개체와 비교하고 이 인스턴스의 값이 지정된 Decimal의 값보다 큰지, 작은지 또는 같은지를 나타내는 정수를 반환합니다.
Public 메서드CompareTo(Object)이 인스턴스를 지정된 Object와 비교하고 이 인스턴스의 값이 지정된 Object의 값보다 큰지, 작은지 또는 같은지를 나타내는 정수를 반환합니다.
Public 메서드정적 멤버Divide지정된 두 개의 Decimal 값을 나눕니다.
Public 메서드Equals(Decimal)이 인스턴스의 값과 지정된 Decimal 개체의 값이 같은지 여부를 나타내는 값을 반환합니다.
Public 메서드Equals(Object)이 인스턴스와 지정된 Object가 같은 형식과 값을 표시하는지 여부를 나타내는 값을 반환합니다. (ValueType.Equals(Object)을(를) 재정의함)
Public 메서드정적 멤버Equals(Decimal, Decimal)지정된 두 개의 Decimal 인스턴스가 같은 값을 표시하는지 여부를 나타내는 값을 반환합니다.
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드정적 멤버Floor지정된 Decimal 수를 음의 무한대에 가장 가까운 정수로 반올림합니다.
Public 메서드정적 멤버GetBitsDecimal의 지정된 인스턴스 값을 같은 값의 이진 표시로 변환합니다.
Public 메서드GetHashCode이 인스턴스에 대한 해시 코드를 반환합니다. (ValueType.GetHashCode()을(를) 재정의함)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드GetTypeCodeDecimal 값 형식에 대한 TypeCode를 반환합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버Multiply지정된 두 Decimal 값을 곱합니다.
Public 메서드정적 멤버Negate지정된 Decimal 값과 음수 1을 곱한 결과를 반환합니다.
Public 메서드정적 멤버Parse(String)숫자의 문자열 표현을 해당하는 Decimal로 변환합니다.
Public 메서드정적 멤버Parse(String, NumberStyles)숫자를 지정된 스타일로 나타낸 문자열 표현을 해당 Decimal로 변환합니다.
Public 메서드정적 멤버Parse(String, IFormatProvider)지정된 문화권별 서식 정보를 사용하여 숫자의 문자열 표현을 해당 Decimal로 변환합니다.
Public 메서드정적 멤버Parse(String, NumberStyles, IFormatProvider)지정된 스타일 및 문화권별 형식을 사용하여 숫자의 문자열 표현을 해당하는 Decimal로 변환합니다.
Public 메서드정적 멤버RemainderDecimal 값을 나눈 나머지를 계산합니다.
Public 메서드정적 멤버RoundDecimal 값을 지정된 소수 자릿수로 반올림합니다.
Public 메서드정적 멤버Subtract다른 값에서 지정된 하나의 Decimal 값을 뺍니다.
Public 메서드정적 멤버ToByte지정된 Decimal의 값을 8비트 부호 없는 정수로 변환합니다.
Public 메서드정적 멤버ToDouble지정된 Decimal의 값을 값이 같은 배정밀도 부동 소수점 숫자로 변환합니다.
Public 메서드정적 멤버ToInt16지정된 Decimal의 값을 16비트 부호 있는 정수로 변환합니다.
Public 메서드정적 멤버ToInt32지정된 Decimal의 값을 32비트 부호 있는 정수로 변환합니다.
Public 메서드정적 멤버ToInt64지정된 Decimal의 값을 64비트 부호 있는 정수로 변환합니다.
Public 메서드정적 멤버ToSByte지정된 Decimal의 값을 8비트 부호 있는 정수로 변환합니다.
Public 메서드정적 멤버ToSingle지정된 Decimal의 값을 값이 같은 단정밀도 부동 소수점 숫자로 변환합니다.
Public 메서드ToString()이 인스턴스의 숫자 값을 해당하는 문자열 표현으로 변환합니다. (ValueType.ToString()을(를) 재정의함)
Public 메서드ToString(IFormatProvider)지정된 문화권별 형식 정보를 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드ToString(String)지정된 형식을 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드ToString(String, IFormatProvider)지정된 형식 및 문화권별 형식 정보를 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드정적 멤버ToUInt16지정된 Decimal의 값을 16비트 부호 없는 정수로 변환합니다.
Public 메서드정적 멤버ToUInt32지정된 Decimal의 값을 32비트 부호 없는 정수로 변환합니다.
Public 메서드정적 멤버ToUInt64지정된 Decimal의 값을 64비트 부호 없는 정수로 변환합니다.
Public 메서드정적 멤버Truncate소수 자리를 삭제하고 지정된 Decimal의 정수 자리만 반환합니다.
Public 메서드정적 멤버TryParse(String, Decimal)숫자의 문자열 표현을 해당하는 Decimal로 변환합니다. 반환 값은 변환이 성공했는지 아니면 실패했는지를 나타냅니다.
Public 메서드정적 멤버TryParse(String, NumberStyles, IFormatProvider, Decimal)지정된 스타일 및 문화권별 형식을 사용하여 숫자의 문자열 표현을 해당하는 Decimal로 변환합니다. 반환 값은 변환이 성공했는지 아니면 실패했는지를 나타냅니다.
맨 위

  이름설명
Public 연산자정적 멤버Addition지정된 두 개의 Decimal 값을 추가합니다.
Public 연산자정적 멤버DecrementDecimal 피연산자를 1씩 감소시킵니다.
Public 연산자정적 멤버Division지정된 두 개의 Decimal 값을 나눕니다.
Public 연산자정적 멤버EqualityDecimal의 두 인스턴스가 같은지 여부를 나타내는 값을 반환합니다.
Public 연산자정적 멤버Explicit(Decimal to Single)Decimal을 단정밀도 부동 소수점 숫자로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to SByte)Decimal을 8비트의 부호 있는 정수로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to Int64)Decimal을 64비트 부호 있는 정수로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to UInt64)Decimal을 64비트 부호 없는 정수로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to UInt32)Decimal을 32비트 부호 없는 정수로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to UInt16)Decimal을 16비트 부호 없는 정수로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to Char)Decimal을 유니코드 문자로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to Byte)Decimal을 8비트의 부호 없는 정수로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to Double)Decimal을 배정밀도 부동 소수점 숫자로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to Int32)Decimal을 32비트 부호 있는 정수로 변환합니다.
Public 연산자정적 멤버Explicit(Decimal to Int16)Decimal을 16비트 부호 있는 정수로 변환합니다.
Public 연산자정적 멤버Explicit(Double to Decimal)배정밀도 부동소수점 숫자를 Decimal로 변환합니다.
Public 연산자정적 멤버Explicit(Single to Decimal)단정밀도 부동 소수점 숫자를 Decimal로 변환합니다.
Public 연산자정적 멤버GreaterThan지정된 Decimal이 지정된 다른 Decimal보다 큰지 여부를 나타내는 값을 반환합니다.
Public 연산자정적 멤버GreaterThanOrEqual지정된 Decimal이 지정된 다른 Decimal보다 크거나 같은지 여부를 나타내는 값을 반환합니다.
Public 연산자정적 멤버Implicit(Byte to Decimal)8비트의 부호 없는 정수를 Decimal로 변환합니다.
Public 연산자정적 멤버Implicit(Char to Decimal)유니코드 문자를 Decimal로 변환합니다.
Public 연산자정적 멤버Implicit(Int16 to Decimal)16비트 부호 있는 정수를 Decimal로 변환합니다.
Public 연산자정적 멤버Implicit(Int32 to Decimal)32비트 부호 있는 정수를 Decimal로 변환합니다.
Public 연산자정적 멤버Implicit(Int64 to Decimal)64비트 부호 있는 정수를 Decimal로 변환합니다.
Public 연산자정적 멤버Implicit(SByte to Decimal)8비트의 부호 있는 정수를 Decimal로 변환합니다.
Public 연산자정적 멤버Implicit(UInt16 to Decimal)16비트 부호 없는 정수를 Decimal로 변환합니다.
Public 연산자정적 멤버Implicit(UInt32 to Decimal)32비트 부호 없는 정수를 Decimal로 변환합니다.
Public 연산자정적 멤버Implicit(UInt64 to Decimal)64비트 부호 없는 정수를 Decimal로 변환합니다.
Public 연산자정적 멤버IncrementDecimal 피연산자를 1씩 증가시킵니다.
Public 연산자정적 멤버InequalityDecimal의 두 인스턴스가 다른지 여부를 나타내는 값을 반환합니다.
Public 연산자정적 멤버LessThan지정된 Decimal이 지정된 다른 Decimal보다 작은지 여부를 나타내는 값을 반환합니다.
Public 연산자정적 멤버LessThanOrEqual지정된 Decimal이 지정된 다른 Decimal보다 작거나 같은지 여부를 나타내는 값을 반환합니다.
Public 연산자정적 멤버Modulus지정된 두 Decimal 값을 나눈 나머지를 반환합니다.
Public 연산자정적 멤버Multiply지정된 두 Decimal 값을 곱합니다.
Public 연산자정적 멤버Subtraction지정된 두 Decimal 값에 대한 빼기를 수행합니다.
Public 연산자정적 멤버UnaryNegation지정된 Decimal 피연산자 값의 부정입니다.
Public 연산자정적 멤버UnaryPlusDecimal 피연산자(부호는 같음)의 값을 반환합니다.
맨 위

  이름설명
Public 필드정적 멤버MaxValueDecimal의 최대값을 나타냅니다. 이 필드는 상수이며 읽기 전용입니다.
Public 필드정적 멤버MinusOne음수 1(-1)을 나타냅니다.
Public 필드정적 멤버MinValueDecimal의 최소값을 나타냅니다. 이 필드는 상수이며 읽기 전용입니다.
Public 필드정적 멤버One숫자 1을 나타냅니다.
Public 필드정적 멤버Zero숫자 0을 나타냅니다.
맨 위

  이름설명
명시적 인터페이스 구현Private 메서드IConvertible.ToBoolean인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToBoolean을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToByte인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToByte를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToChar인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToDateTime인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToDecimal인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToDecimal을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToDouble인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToDouble을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt16인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt16을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt32인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt32를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt64인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt64를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToSByte인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToSByte를 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToSingle인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToSingle을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToType인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToType을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToUInt16인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToUInt16을 참조하세요.
명시적 인터페이스 구현Private 메서드IConvertible.ToUInt32인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt32를 참조하세요.
명시적 인터페이스 구현Private 메서드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 to 296) / 10(0 to 28))이고, 여기서 -296-1은 MinValue이고, 296-1은 MaxValue입니다.

소수 자릿수 인수는 Decimal 숫자의 후행 0도 모두 보존합니다. 후행 0은 산술 연산이나 비교 연산에서 Decimal 숫자의 값에 영향을 미치지 않습니다. 그러나 적절한 형식 문자열이 적용되는 경우 ToString 메서드에 의해 후행 0이 표시될 수 있습니다.

변환 고려 사항

이 형식은 Decimal 값을 SByte, Int16, Int32, Int64, Byte, UInt16, UInt32UInt64 형식으로 또는 반대로 변환하는 메서드를 제공합니다. 이러한 정수 형식을 Decimal로 변환하는 것은 정보를 잃거나 예외를 발생시키지 않는 확장된 변환에 해당합니다.

Decimal에서 이러한 정수 형식 중 하나로 변환하는 것은 Decimal 값을 0에서 가장 가까운 정수로 반올림하는 한정된 변환에 해당합니다. 또한 C#과 같은 일부 언어에서는 Decimal 값을 Char 값으로 변환할 수 있습니다. 이러한 변환의 결과를 대상 형식으로 표현할 수 없으면 OverflowException이 발생합니다.

Decimal 형식은 Decimal 값을 SingleDouble 형식으로 또는 반대로 변환하는 메서드를 제공합니다. Decimal에서 Single 또는 Double로 또는 반대로 변환하는 것은 정밀도를 떨어뜨릴 뿐 아니라 변환된 값의 크기에 대한 정보가 손실되는 한정된 변환에 해당합니다. 이러한 변환은 예외를 발생시키지 않습니다.

Single 또는 DoubleDecimal로 변환할 때 변환의 결과를 Decimal로 표현할 수 없으면 OverflowException이 발생합니다.

구현된 인터페이스

이 형식은 IComparable, IComparable<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

Windows Phone

이 형식의 모든 멤버는 스레드로부터 안전합니다. 인스턴스 상태를 수정하는 것처럼 보이는 멤버의 경우 실제로는 새 값으로 초기화되는 새 인스턴스를 반환합니다. 다른 모든 형식과 마찬가지로 이 형식의 인스턴스를 포함하는 공유 변수를 읽고 쓰는 작업은 스레드로부터 안전하도록 잠가서 보호해야 합니다.

주의주의:

이 형식의 인스턴스를 할당하는 경우 해당 인스턴스의 이진 표현이 너무 커서 단일 원자 연산에 할당되지 못할 수 있으므로 모든 하드웨어 플랫폼에서 스레드로부터 안전하지 않습니다.

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft