문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Double 구조체

배정밀도 부동 소수점 숫자를 나타냅니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)

[ComVisibleAttribute(true)]
public struct Double : IComparable, IFormattable, 
	IConvertible, IComparable<double>, IEquatable<double>

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

  이름설명
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원CompareTo(Double)이 인스턴스를 지정된 배정밀도 부동 소수점 숫자와 비교하고 이 인스턴스의 값이 지정된 배정밀도 부동 소수점 숫자 값보다 작은지, 같은지 또는 큰지를 나타내는 정수를 반환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원CompareTo(Object)이 인스턴스를 지정된 개체와 비교하고 이 인스턴스의 값이 지정된 개체의 값보다 작은지, 같은지 또는 큰지를 나타내는 정수를 반환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Equals(Double)이 인스턴스의 값과 지정된 Double 개체의 값이 같은지 여부를 나타내는 값을 반환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Equals(Object)이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (ValueType.Equals(Object)을(를) 재정의함)
Protected 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Finalize가비지 수집에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원GetHashCode해당 인스턴스에 대한 해시 코드를 반환합니다. (ValueType.GetHashCode()을(를) 재정의함)
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원GetTypeCode Double 값 형식에 대한 TypeCode를 반환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IsInfinity지정된 숫자가 음의 무한대로 계산되는지 양의 무한대로 계산되는지를 나타내는 값을 반환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IsNaN지정된 숫자가 Not-a-Number(NaN)로 계산되는지 여부를 나타내는 값을 반환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IsNegativeInfinity지정된 숫자가 음의 무한대로 계산되는지를 나타내는 값을 반환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IsPositiveInfinity지정된 숫자가 양의 무한대로 계산되는지를 나타내는 값을 반환합니다.
Protected 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Parse(String)숫자의 문자열 표현을 같은 값의 배정밀도 부동 소수점 숫자로 변환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Parse(String, NumberStyles)지정된 스타일의 숫자에 대한 문자열 표현을 해당하는 배정밀도 부동 소수점 숫자로 변환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Parse(String, IFormatProvider)지정된 문화권별 형식의 숫자에 대한 문자열 표현을 해당하는 배정밀도 부동 소수점 숫자로 변환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Parse(String, NumberStyles, IFormatProvider)지정된 스타일 및 문화권별 형식의 숫자에 대한 문자열 표현을 같은 값의 배정밀도 부동 소수점 숫자로 변환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToString()이 인스턴스의 숫자 값을 해당하는 문자열 표현으로 변환합니다. (ValueType.ToString()을(를) 재정의함)
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToString(IFormatProvider)지정된 문화권별 형식 정보를 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToString(String)지정된 형식을 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToString(String, IFormatProvider)지정된 형식 및 문화권별 형식 정보를 사용하여 이 인스턴스의 숫자 값을 해당 문자열 표현으로 변환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원TryParse(String, Double)숫자의 문자열 표현을 같은 값의 배정밀도 부동 소수점 숫자로 변환합니다. 반환 값은 변환이 성공했는지 아니면 실패했는지를 나타냅니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원TryParse(String, NumberStyles, IFormatProvider, Double)지정된 스타일 및 문화권별 형식의 숫자에 대한 문자열 표현을 같은 값의 배정밀도 부동 소수점 숫자로 변환합니다. 반환 값은 변환이 성공했는지 아니면 실패했는지를 나타냅니다.
위쪽

  이름설명
Public 필드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Epsilon0보다 큰 양의 최소 Double 값을 나타냅니다. 이 필드는 상수입니다.
Public 필드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원MaxValue Double 의 최대값을 나타냅니다. 이 필드는 상수입니다.
Public 필드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원MinValue Double 의 최소값을 나타냅니다. 이 필드는 상수입니다.
Public 필드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원NaNNot-a-Number(NaN)를 나타냅니다. 이 필드는 상수입니다.
Public 필드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원NegativeInfinity음의 무한대를 나타냅니다. 이 필드는 상수입니다.
Public 필드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원PositiveInfinity양의 무한대를 나타냅니다. 이 필드는 상수입니다.
위쪽

  이름설명
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToBoolean인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToBoolean을 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToByte인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToByte를 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToChar인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 throw됩니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToDateTime인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 throw됩니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToDecimal인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToDecimal을 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToDouble인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToDouble을 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToInt16인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt16을 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToInt32인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt32를 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToInt64인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToInt64를 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToSByte인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToSByte를 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToSingle인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToSingle을 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToType인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToType을 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToUInt16인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToUInt16을 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToUInt32인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToUInt32를 참조하십시오.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToUInt64인프라입니다. 이 멤버에 대한 설명은 IConvertible.ToUInt64를 참조하십시오.
위쪽

Double 값 형식은 배정밀도 64비트 숫자를 나타내며, 음수 1.79769313486232e308과 양수 1.79769313486232e308 사이의 값을 가지고, 양수 또는 음수 0, PositiveInfinity, NegativeInfinity 및 Not-a-Number(NaN)도 포함됩니다.

Double 은 이진 부동 소수점 산술 연산에 대한 IEC 60559:1989(IEEE 754) 표준을 따릅니다.

Double 은 이 형식의 인스턴스를 비교하고 인스턴스의 값을 문자열 표현으로 변환하며 숫자의 문자열 표현을 이 형식의 인스턴스로 변환하는 메서드를 제공합니다. 형식 사양 코드로 값 형식의 문자열 표현을 제어하는 방법에 대한 자세한 내용은 서식 지정 유형, 표준 숫자 서식 문자열사용자 지정 숫자 형식 문자열을 참조하십시오.

부동 소수점 숫자 사용

이진 연산을 수행할 때 피연산자 중 하나가 Double이면 다른 피연산자는 정수 계열 형식이거나 부동 소수점 형식(Double 또는 Single)이어야 합니다. 다른 피연산자가 Double이 아니면 연산을 수행하기 전에 Double로 변환되고 최소의 Double 범위와 정밀도를 사용하여 연산이 수행됩니다. 연산 결과가 숫자이면 결과 형식은 Double입니다.

대입 연산자를 포함하여 부동 소수점 연산자는 예외를 throw하지 않습니다. 대신 예외 상황이 발생하면 부동 소수점 연산의 결과는 아래 설명에서처럼 0, 무한대 또는 NaN입니다.

  • 부동 소수점 연산의 결과가 대상 형식에 비해 너무 작으면 연산 결과는 0입니다.

  • 부동 소수점 연산의 결과가 대상 형식에 비해 너무 크면 연산 결과는 결과의 부호에 따라 PositiveInfinity 또는 NegativeInfinity입니다.

  • 부동 소수점 연산이 잘못되었으면 연산 결과는 NaN입니다.

  • 부동 소수점 연산의 피연산자 중 하나 또는 모두가 NaN이면 연산 결과는 NaN입니다.

부동 소수점 값 및 정밀도 손실

부동 소수점 숫자는 10진수를 대략적으로만 나타낼 수 있으며 부동 소수점 숫자의 전체 자릿수에 따라 10진수의 근사값인 해당 값의 정밀도가 달라집니다. 내부적으로는 최대 17자리의 정밀도를 유지 관리하지만 Double 값은 기본적으로 15자리를 포함합니다. 부동 소수점 숫자의 자릿수에 따라 다음과 같은 여러 경우가 발생합니다.

  • 특정 정밀도에 대해 동일하게 나타나는 두 개의 부동 소수점 숫자는 최소 유효 자릿수가 다르기 때문에 서로 다른 것으로 간주될 수 있습니다.

  • 부동 소수점 숫자를 사용하는 수학 연산이나 비교 연산에서는 부동 소수점 숫자로 10진수를 정확하게 나타낼 수 없기 때문에 10진수가 사용되는 경우 동일한 결과를 생성하지 않을 수 있습니다.

  • 부동 소수점 숫자가 포함된 경우 값에 라운드트립이 발생하지 않을 수 있습니다. 연산에서 원래 부동 소수점 숫자를 다른 형식으로 변환하고, 역 연산에서 변환된 형식을 다시 부동 소수점 숫자로 변환하며, 최종 부동 소수점 숫자가 원래 부동 소수점 숫자와 같으면 해당 값을 라운드트립 값이라고 합니다. 변환할 때 하나 이상의 최소 유효 자릿수가 손실되거나 변경되기 때문에 라운드트립이 실패할 수 있습니다.

또한 Double 값을 사용한 산술 및 할당 연산의 결과는 Double 형식의 전체 자릿수 손실로 인해 플랫폼마다 약간씩 다를 수 있습니다.

인터페이스 구현

이 형식은 IComparable, IComparable<T>, IFormattableIConvertible 인터페이스를 구현합니다. 변환을 위해 이 형식의 IConvertible 명시적 인터페이스 멤버 구현 대신 Convert 클래스를 사용합니다.

Double 값 및 Silverlight XAML 구문 분석

Double 값이 Silverlight XAML이 XAML 특성 값에서 처리되면 값은 코드와 런타임에 Double의 정의에 의해 암시되는 전체 정밀도를 유지하지 않습니다. 이는 Silverlight XAML 구문 분석기 작업의 일부로 사용되고 있기 때문이며 사용자 인터페이스에 적용되는 숫자 값의 최적화를 위한 것입니다. 자세한 내용은 XAML 사용 구문을 참조하십시오.

또한 Silverlight는 내부 속성 형식이 Double이지만 예상되는 값이 0과 1.0 사이인 경우 여러 속성을 포함합니다. 이는 일반적으로 해당 속성의 참조 설명서에 나와 있으며 종종 XAML 구문에 구체적으로 설명되어 있습니다. 이러한 속성의 예제는 UIElement.Opacity입니다.

다음 예제에서는 Double을 사용하는 방법을 보여 줍니다.


// Temperature class stores the value as Double
// and delegates most of the functionality 
// to the Double implementation.
public class Temperature : IComparable, IFormattable
{
   // IComparable.CompareTo implementation.
   public int CompareTo(object obj)
   {
      if (obj == null) return 1;

      Temperature temp = obj as Temperature;
      if (temp != null) 
         return m_value.CompareTo(temp.m_value);
      else
         throw new ArgumentException("object is not a Temperature");
   }

   // IFormattable.ToString implementation.
   public string ToString(string format, IFormatProvider provider)
   {
      if (format != null)
      {
         if (format.Equals("F"))
         {
            return String.Format("{0}'F", this.Value.ToString());
         }
         if (format.Equals("C"))
         {
            return String.Format("{0}'C", this.Celsius.ToString());
         }
      }

      return m_value.ToString(format, provider);
   }

   // Parses the temperature from a string in form
   // [ws][sign]digits['F|'C][ws]
   public static Temperature Parse(string s, NumberStyles styles, IFormatProvider provider)
   {
      Temperature temp = new Temperature();

      if (s.TrimEnd(null).EndsWith("'F"))
      {
         temp.Value = Double.Parse(s.Remove(s.LastIndexOf('\''), 2), styles, provider);
      }
      else if (s.TrimEnd(null).EndsWith("'C"))
      {
         temp.Celsius = Double.Parse(s.Remove(s.LastIndexOf('\''), 2), styles, provider);
      }
      else
      {
         temp.Value = Double.Parse(s, styles, provider);
      }

      return temp;
   }

   // The value holder
   protected double m_value;

   public double Value
   {
      get
      {
         return m_value;
      }
      set
      {
         m_value = value;
      }
   }

   public double Celsius
   {
      get
      {
         return (m_value - 32.0) / 1.8;
      }
      set
      {
         m_value = 1.8 * value + 32.0;
      }
   }
}


Silverlight

5, 4, 3에서 지원

Windows Phone용 Silverlight

Windows Phone OS 7.1, Windows Phone OS 7.0에서 지원

XNA Framework

Xbox 360, Windows Phone OS 7.0에서 지원

Silverlight에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

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

주의 정보주의:

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

커뮤니티 추가 항목

추가
표시: