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

Single.Parse 메서드 (String, IFormatProvider)

2013-12-13

지정된 문화권별 형식의 숫자에 대한 문자열 표현을 해당하는 단정밀도 부동 소수점 숫자로 변환합니다.

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

public static float Parse(
	string s,
	IFormatProvider provider
)

매개 변수

s
형식: System.String
변환할 숫자를 포함하는 문자열입니다.
provider
형식: System.IFormatProvider
s에 대한 문화권별 형식 정보를 제공하는 개체입니다.

반환 값

형식: System.Single
s에 지정된 숫자 값 또는 기호에 해당하는 단정밀도 부동 소수점 숫자입니다.

예외조건
ArgumentNullException

snull인 경우

FormatException

s의 형식이 잘못된 경우

OverflowException

sMinValue보다 작거나 MaxValue보다 큰 숫자를 나타내는 경우

이 오버로드는 일반적으로 다양한 방식으로 형식이 지정될 수 있는 텍스트를 Single 값으로 변환하는 데 사용됩니다. 예를 들어 사용자가 HTML 텍스트 상자에 입력한 텍스트를 숫자 값으로 변환하는 데 사용할 수 있습니다.

s 매개 변수는 NumberStyles.FloatNumberStyles.AllowThousands 플래그를 조합하여 해석됩니다. s 매개 변수에는 provider에 지정된 문화권의 NumberFormatInfo.PositiveInfinitySymbol, NumberFormatInfo.NegativeInfinitySymbol 또는 NumberFormatInfo.NaNSymbol이 포함되거나 다음 형식의 문자열이 포함될 수 있습니다.

[ws][sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits][ws]

선택적 요소는 대괄호([ 및 ])로 묶습니다. "digits" 항이 있는 항목은 0에서 9 사이의 범위인 일련의 숫자 문자로 구성됩니다.

요소

설명

ws

공백 문자입니다.

sign

음수 부호 기호(-) 또는 양수 부호 기호(+)입니다.

integral-digits

숫자의 정수 부분을 지정하는 0에서 9 사이의 수열입니다. integral-digits를 쓸 때 그룹 구분 기호로 분할할 수 있습니다. 예를 들어, 일부 문화권에서는 쉼표(,)를 사용하여 1000 단위 그룹을 구분합니다. 문자열에 fractional-digits 요소가 포함된 경우 integral-digits 요소가 없을 수 있습니다.

.

문화권별 소수점 기호입니다.

fractional-digits

숫자의 소수 부분을 지정하는 0에서 9 사이의 수열입니다.

E

값이 지수(공학용) 표기법으로 표현됨을 나타내는 "e" 또는 "E" 문자입니다.

exponential-digits

지수를 지정하는 0에서 9 사이의 수열입니다.

숫자 형식에 대한 자세한 내용은 [0D1364DA-5B30-4D42-8E6B-03378343343F] 항목을 참조하세요.

provider 매개 변수는 IFormatProvider 구현으로, 이 구현의 GetFormat 메서드는 문화권별 형식 정보를 제공하는 NumberFormatInfo 개체를 반환합니다. Parse(String, IFormatProvider) 메서드가 불려오면 provider 매개 변수의 GetFormat 메서드가 호출되고, NumberFormatInfo 형식을 나타내는 Type 개체에 전달됩니다. 그런 다음 GetFormat 메서드는 s 매개 변수의 형식에 대한 정보를 제공하는 NumberFormatInfo 개체를 반환합니다. 세 가지 방법으로 provider 매개 변수를 사용하여 구문 분석 작업을 위한 사용자 지정 형식 정보를 제공할 수 있습니다.

  • 형식 정보를 제공하는 문화권을 나타내는 CultureInfo 개체를 전달할 수 있습니다. GetFormat 메서드는 해당 문화권에 대한 숫자 형식 정보를 제공하는 NumberFormatInfo 개체를 반환합니다.

  • 숫자 형식 정보를 제공하는 실제 NumberFormatInfo 개체를 전달할 수 있습니다. 이 GetFormat 구현에서는 자기 자신만 반환합니다.

  • IFormatProvider를 구현하는 사용자 지정 개체를 전달할 수 있습니다. GetFormat 메서드는 형식 정보를 제공하는 NumberFormatInfo 개체를 인스턴스화하고 반환합니다.

providernull이거나 NumberFormatInfo를 얻을 수 없으면 현재 시스템 문화권에 대한 형식 정보가 사용됩니다.

구문 분석 작업 중 s 매개 변수에서 구분 기호가 발견되고 적용 가능한 통화 또는 숫자의 소수 및 그룹 구분 기호가 같으면, 구문 분석 작업에서 구분 기호는 그룹 구분 기호가 아니라 소수 구분 기호로 간주됩니다. 구분 기호에 대한 자세한 내용은 CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorNumberGroupSeparator를 참조하세요.

다음 예제에서는 Parse(String, IFormatProvider) 메서드 오버로드를 사용하여 문자열을 구문 분석하는 방법을 보여 줍니다. 메서드는 먼저 현재 문화권을 사용하여 문자열 구문 분석을 시도합니다. 구문 분석 작업이 실패한 경우에는 중립 문화권을 사용하여 문자열 구문 분석을 시도합니다. 이 구문 분석 작업이 실패한 경우에는 고정 문화권을 사용하여 문자열 구문 분석을 시도합니다. Single.TryParse(String, NumberStyles, IFormatProvider, Single) 메서드를 사용하면 루틴에서 반복되는 예외를 처리하지 않아도 되기 때문에 알 수 없는 문자열을 구문 분석하는 데 매우 적합합니다.


public static float GetSingle(string value)
{
   float number;
   CultureInfo culture = null;

   // Throw exception if string is empty.
   if (String.IsNullOrEmpty(value))
      throw new ArgumentNullException("The input string is invalid.");

   // Determine if value can be parsed using current culture.
   try
   {
      culture = CultureInfo.CurrentCulture;
      number = float.Parse(value, culture);
      return number;
   }
   catch {}
   // If Parse operation fails, see if there's a neutral culture.
   try {
      culture = culture.Parent;
      number = float.Parse(value, culture);
      return number;
   }   
   catch {}
   // If there is no neutral culture or if parse operation fails, use
   // the invariant culture.
   culture = CultureInfo.InvariantCulture;
   try {
      number = float.Parse(value, culture);
      return number;
   }
   // All attempts to parse the string have failed; rethrow the exception.
   catch (FormatException e)
   {
      throw new FormatException(String.Format("Unable to parse '{0}'.", value), 
                                e);
   }
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시:
© 2015 Microsoft