내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

Single.Parse 메서드 (String, NumberStyles)

지정된 스타일로 된 숫자의 문자열 표현을 해당하는 단정밀도 부동 소수점 숫자로 변환합니다.

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

public static float Parse(
	string s,
	NumberStyles style
)

매개 변수

s
형식: System.String
변환할 숫자를 나타내는 문자열입니다.
style
형식: System.Globalization.NumberStyles
s에 나타날 수 있는 스타일 요소를 나타내는 열거형 값의 비트 조합입니다. 지정할 일반적인 값은 NumberStyles.AllowThousands와 결합되는 NumberStyles.Float입니다.

반환 값

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

예외상황
ArgumentNullException

snull입니다.

FormatException

s의 형식이 잘못된 경우

OverflowException

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

ArgumentException

styleNumberStyles 값이 아닌 경우

- 또는 -

styleAllowHexSpecifier 값인 경우

style 매개 변수는 구문 분석 작업이 성공하기 위해 s 매개 변수에 허용되는 공백, 1000 단위 구분 기호 및 통화 기호 등의 스타일 요소를 정의합니다. 이것은 NumberStyles 열거형의 비트 플래그 조합이어야 합니다. 다음과 같은 NumberStyles 멤버는 지원되지 않습니다.

s 매개 변수에는 현재 문화권의 PositiveInfinitySymbol, NegativeInfinitySymbol, NaNSymbol이 포함될 수 있습니다. style의 값에 따라서는 다음 형태를 취할 수도 있습니다.

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

대괄호([ 및 ])에 있는 요소는 선택적입니다. 다음 표에서는 각 요소에 대해 설명합니다.

ws

공백 문자입니다. styleNumberStyles.AllowLeadingWhite 플래그가 포함된 경우 공백이 s의 시작 부분에 나타날 수 있고, styleNumberStyles.AllowTrailingWhite 플래그가 포함된 경우 공백이 s의 끝에 나타날 수 있습니다.

$

문화권별 통화 기호입니다. 문자열에서 이 기호의 위치는 현재 문화권의 NumberFormatInfo.CurrencyNegativePatternNumberFormatInfo.CurrencyPositivePattern 속성으로 정의됩니다. styleNumberStyles.AllowCurrencySymbol 플래그가 포함된 경우 현재 문화권의 통화 기호가 s에 나타날 수 있습니다.

sign

음수 부호 기호(-) 또는 양수 부호 기호(+)입니다. styleNumberStyles.AllowLeadingSign 플래그가 포함된 경우 부호가 s의 시작 부분에 나타날 수 있고, styleNumberStyles.AllowTrailingSign 플래그가 포함된 경우 부호가 s의 끝에 나타날 수 있습니다. styleNumberStyles.AllowParentheses 플래그가 포함된 경우 s에 괄호를 사용하여 음수 값을 나타낼 수 있습니다.

integral-digits

숫자의 정수 부분을 지정하는 0에서 9 사이의 수열입니다. 문자열에 fractional-digits 요소가 포함된 경우 integral-digits 요소가 없을 수 있습니다.

,

문화권별 그룹 구분 기호입니다. styleNumberStyles.AllowThousands 플래그가 포함된 경우 현재 문화권의 그룹 구분 기호가 s에 나타날 수 있습니다.

.

문화권별 소수점 기호입니다. styleNumberStyles.AllowDecimalPoint 플래그가 포함된 경우 현재 문화권의 소수점 기호가 s에 나타날 수 있습니다.

fractional-digits

숫자의 소수 부분을 지정하는 0에서 9 사이의 수열입니다. styleNumberStyles.AllowDecimalPoint 플래그가 포함된 경우 s에 소수 숫자가 나타날 수 있습니다.

E

값이 지수(공학용) 표기법으로 표현됨을 나타내는 "e" 또는 "E" 문자입니다. styleNumberStyles.AllowExponent 플래그가 포함된 경우 value 매개 변수는 지수 표기법의 숫자를 나타낼 수 있습니다.

exponential-digits

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

digits만 있는 문자열(NumberStyles.None 스타일에 해당)은 항상 성공적으로 구문 분석됩니다. 나머지 System.Globalization.NumberStyles 멤버는 입력 문자열에 나타날 수 있지만 반드시 나타날 필요는 없는 요소를 제어합니다. 다음 표에서는 개별 NumberStyles 플래그가 s에 나타날 수 있는 요소에 영향을 주는 방식을 보여 줍니다.

NumberStyles 값

숫자 이외에 s에서 허용되는 요소

None

integral-digits 요소만 허용됩니다.

AllowDecimalPoint

소수점(.) 및 fractional_digits 요소가 나타날 수 있습니다.

AllowExponent

지수 표기법을 나타내는 "e" 또는 "E" 문자가 나타날 수 있습니다. 이 플래그는 digitsEdigits 형식의 값을 지원하며, 양수 부호, 음수 부호 및 소수점 기호로 사용된 요소가 있는 문자열을 성공적으로 구문 분석하려면 추가 플래그가 필요합니다.

AllowLeadingWhite

s 시작 부분에 ws 요소가 나타날 수 있습니다.

AllowTrailingWhite

s 끝 부분에 ws 요소가 나타날 수 있습니다.

AllowLeadingSign

s 시작 부분에 sign 요소가 나타날 수 있습니다.

AllowTrailingSign

s 끝 부분에 sign 요소가 나타날 수 있습니다.

AllowParentheses

괄호 안에 숫자 값이 들어 있는 형식으로 sign 요소가 나타날 수 있습니다.

AllowThousands

1000 단위 구분 기호(,) 요소가 나타날 수 있습니다.

AllowCurrencySymbol

통화($) 요소가 나타날 수 있습니다.

Currency

모든 요소가 나타날 수 있습니다. 하지만 s는 지수 표기법으로 16진수 또는 숫자를 나타낼 수 없습니다.

Float

s 시작 부분 또는 끝 부분의 ws 요소, s 시작 부분의 sign 요소 및 소수점(.) 기호가 나타날 수 있습니다. s 매개 변수에 지수 표기법이 사용될 수도 있습니다.

Number

ws, sign, 1000 단위 구분 기호(,) 및 소수점(.) 요소가 나타날 수 있습니다.

Any

모든 요소가 나타날 수 있습니다. 하지만 s는 16진수 숫자를 나타낼 수 없습니다.

s의 몇 가지 예로 "100", "-123,456,789", "123.45e+6", "+500", "5e2", "3.1416", "600.", "-.123" 및 "-무한대"를 들 수 있습니다.

s 매개 변수는 현재 시스템 문화권에 따라 초기화된 NumberFormatInfo 개체의 형식 지정 정보를 사용하여 구문 분석됩니다. 해당 형식 지정 정보를 구문 분석 작업에 사용할 문화권을 지정하려면 Parse(String, NumberStyles, IFormatProvider) 오버로드를 호출합니다.

일반적으로 ToString 메서드를 호출하여 만든 문자열을 Parse 메서드에 전달하면 원래의 Single 값이 반환됩니다. 그러나 전체 자릿수 손실로 인해 값이 같지 않을 수도 있습니다.

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

CurrencyGroupSeparator NumberGroupSeparator

다음 코드 예제에서는 Parse 메서드에 NumberStyles 값을 사용하여 Single 값의 String 표현을 구문 분석합니다.


// Example of the Single.Parse( ) methods.
using System;
using System.Globalization;

class Example
{
   // Get the exception type name; remove the namespace prefix.
   static string GetExceptionType(Exception ex)
   {
      string exceptionType = ex.GetType().ToString();
      return exceptionType.Substring(
          exceptionType.LastIndexOf('.') + 1);
   }

   // Parse each string in the singleFormats array, using 
   // NumberStyles and IFormatProvider, if specified.
   static void SingleParse(System.Windows.Controls.TextBlock outputBlock, NumberStyles styles,
       IFormatProvider provider)
   {
      string[] singleFormats = {
            " 987.654E-2",   " 987,654E-2",    "(98765,43210)", 
            "9,876,543.210", "9.876.543,210",  "98_76_54_32,19" };

      foreach (string singleString in singleFormats)
      {
         float singleNumber;

         // Display the first part of the output line.
         outputBlock.Text += String.Format("  Parse of {0,-20}",
             String.Format("\"{0}\"", singleString));

         try
         {
            // Use the appropriate Single.Parse overload, based 
            // on the parameters that are specified.
            if (provider == null)
            {
               if (styles < 0)
                  singleNumber = Single.Parse(singleString);
               else
                  singleNumber =
                      Single.Parse(singleString, styles);
            }
            else if (styles < 0)
               singleNumber =
                   Single.Parse(singleString, provider);
            else
               singleNumber =
                   Single.Parse(singleString, styles, provider);

            // Display the resulting value if Parse succeeded.
            outputBlock.Text += String.Format("success: {0}", singleNumber) + "\n";
         }
         catch (Exception ex)
         {
            // Display the exception type if Parse failed.
            outputBlock.Text += String.Format("failed:  {0}",
                GetExceptionType(ex)) + "\n";
         }
      }
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.Text += String.Format("This example of\n" +
          "  Single.Parse( String ),\n" +
          "  Single.Parse( String, NumberStyles ),\n" +
          "  Single.Parse( String, IFormatProvider ), and\n" +
          "  Single.Parse( String, NumberStyles, " +
          "IFormatProvider )\ngenerates the " +
          "following output when run in the [{0}] culture.",
          CultureInfo.CurrentCulture.Name) + "\n";
      outputBlock.Text += String.Format("Several string representations " +
          "of Single values are parsed.") + "\n";

      // Do not use IFormatProvider or NumberStyles.
      outputBlock.Text += String.Format("\nNumberStyles and IFormatProvider " +
          "are not used; current culture is [{0}]:",
          CultureInfo.CurrentCulture.Name) + "\n";
      SingleParse(outputBlock, ((NumberStyles)(-1)), null);

      // Use the NumberStyle for Currency.
      outputBlock.Text += String.Format("\nNumberStyles.Currency " +
          "is used; IFormatProvider is not used:") + "\n";
      SingleParse(outputBlock, NumberStyles.Currency, null);

      // Create a CultureInfo object for another culture. Use
      // [Dutch - The Netherlands] unless the current culture
      // is Dutch language. In that case use [English - U.S.].
      string cultureName =
          CultureInfo.CurrentCulture.Name.Substring(0, 2) == "nl" ?
              "en-US" : "nl-NL";
      CultureInfo culture = new CultureInfo(cultureName);

      outputBlock.Text += String.Format("\nNumberStyles is not used; " +
          "[{0}] culture IFormatProvider is used:",
          culture.Name) + "\n";
      SingleParse(outputBlock, ((NumberStyles)(-1)), culture);

      // Get the NumberFormatInfo object from CultureInfo, and
      // then change the digit group size to 2 and the digit
      // separator to '_'.
      NumberFormatInfo numInfo = culture.NumberFormat;
      numInfo.NumberGroupSizes = new int[] { 2 };
      numInfo.NumberGroupSeparator = "_";

      // Use the NumberFormatInfo object as the IFormatProvider.
      outputBlock.Text += String.Format("\nNumberStyles.Currency is used, " +
          "group size = 2, separator = \"_\":") + "\n";
      SingleParse(outputBlock, NumberStyles.Currency, numInfo);
   }
}

/*
This example of
  Single.Parse( String ),
  Single.Parse( String, NumberStyles ),
  Single.Parse( String, IFormatProvider ), and
  Single.Parse( String, NumberStyles, IFormatProvider )
generates the following output when run in the [en-US] culture.
Several string representations of Single values are parsed.

NumberStyles and IFormatProvider are not used; current culture is [en-US]:
  Parse of " 987.654E-2"       success: 9.87654
  Parse of " 987,654E-2"       success: 9876.54
  Parse of "(98765,43210)"     failed:  FormatException
  Parse of "9,876,543.210"     success: 9876543
  Parse of "9.876.543,210"     failed:  FormatException
  Parse of "98_76_54_32,19"    failed:  FormatException

NumberStyles.Currency is used; IFormatProvider is not used:
  Parse of " 987.654E-2"       failed:  FormatException
  Parse of " 987,654E-2"       failed:  FormatException
  Parse of "(98765,43210)"     success: -9.876543E+09
  Parse of "9,876,543.210"     success: 9876543
  Parse of "9.876.543,210"     failed:  FormatException
  Parse of "98_76_54_32,19"    failed:  FormatException

NumberStyles is not used; [nl-NL] culture IFormatProvider is used:
  Parse of " 987.654E-2"       success: 9876.54
  Parse of " 987,654E-2"       success: 9.87654
  Parse of "(98765,43210)"     failed:  FormatException
  Parse of "9,876,543.210"     failed:  FormatException
  Parse of "9.876.543,210"     success: 9876543
  Parse of "98_76_54_32,19"    failed:  FormatException

NumberStyles.Currency is used, group size = 2, separator = "_":
  Parse of " 987.654E-2"       failed:  FormatException
  Parse of " 987,654E-2"       failed:  FormatException
  Parse of "(98765,43210)"     success: -98765.43
  Parse of "9,876,543.210"     failed:  FormatException
  Parse of "9.876.543,210"     success: 9876543
  Parse of "98_76_54_32,19"    success: 9.876543E+07
*/


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에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

커뮤니티 추가 항목

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

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