Decimal.Parse Yöntem

Tanım

Bir sayının dize gösterimini Decimal eşdeğerine dönüştürür.Converts the string representation of a number to its Decimal equivalent.

Aşırı Yüklemeler

Parse(String, NumberStyles, IFormatProvider)

Bir sayının dize gösterimini, belirtilen stili ve kültüre özgü biçimi kullanarak Decimal eşdeğerine dönüştürür.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format.

Parse(String, IFormatProvider)

Bir sayının dize gösterimini, belirtilen kültüre özgü biçim bilgilerini kullanarak Decimal eşdeğerine dönüştürür.Converts the string representation of a number to its Decimal equivalent using the specified culture-specific format information.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Bir sayının span gösterimini, belirtilen stili ve kültüre özgü biçimi kullanarak Decimal eşdeğerine dönüştürür.Converts the span representation of a number to its Decimal equivalent using the specified style and culture-specific format.

Parse(String)

Bir sayının dize gösterimini Decimal eşdeğerine dönüştürür.Converts the string representation of a number to its Decimal equivalent.

Parse(String, NumberStyles)

Belirtilen stildeki bir sayının dize gösterimini Decimal eşdeğerine dönüştürür.Converts the string representation of a number in a specified style to its Decimal equivalent.

Parse(String, NumberStyles, IFormatProvider)

Bir sayının dize gösterimini, belirtilen stili ve kültüre özgü biçimi kullanarak Decimal eşdeğerine dönüştürür.Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format.

public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public static decimal Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Decimal

Parametreler

s
String

Dönüştürülecek sayının dize gösterimi.The string representation of the number to convert.

style
NumberStyles

s' de bulunabilecek stil öğelerini gösteren NumberStyles değerlerinin bit düzeyinde birleşimi.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Belirtmek için tipik bir değer Number.A typical value to specify is Number.

provider
IFormatProvider

sbiçimi hakkında kültüre özgü bilgiler sağlayan IFormatProvider nesnesi.An IFormatProvider object that supplies culture-specific information about the format of s.

Döndürülenler

Decimal

style ve providertarafından belirtilen s içindeki sayıya eşdeğer Decimal numarası.The Decimal number equivalent to the number contained in s as specified by style and provider.

Özel durumlar

s doğru biçimde değil.s is not in the correct format.

s, MinValue veya MaxValuedaha büyük bir sayıyı temsil eder.s represents a number less than MinValue or greater than MaxValue.

snull.s is null.

style NumberStyles bir değer değil.style is not a NumberStyles value.

-veya--or- style AllowHexSpecifier değeridir.style is the AllowHexSpecifier value.

Örnekler

Aşağıdaki örnek Decimal değerlerinin dize temsillerini ayrıştırmak için çeşitli style ve provider parametrelerini kullanır.The following example uses a variety of style and provider parameters to parse the string representations of Decimal values.

string value;
decimal number;
NumberStyles style;
CultureInfo provider;

// Parse string using "." as the thousands separator
// and " " as the decimal separator.
value = "892 694,12";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
provider = new CultureInfo("fr-FR");

number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    892 694,12' converted to 892694.12.

try
{
   number = Decimal.Parse(value, style, CultureInfo.InvariantCulture);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '892 694,12'.

// Parse string using "$" as the currency symbol for en-GB and
// en-us cultures.
value = "$6,032.51";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
provider = new CultureInfo("en-GB");

try
{
   number = Decimal.Parse(value, style, provider);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '$6,032.51'.

provider = new CultureInfo("en-US");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '$6,032.51' converted to 6032.51.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
Dim provider As CultureInfo

' Parse string using "." as the thousands separator 
' and " " as the decimal separator. 
value = "892 694,12"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
provider = New CultureInfo("fr-FR")

number = Decimal.Parse(value, style, provider)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    892 694,12' converted to 892694.12.

Try
   number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '892 694,12'.  

' Parse string using "$" as the currency symbol for en-GB and
' en-us cultures.
value = "$6,032.51"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
provider = New CultureInfo("en-GB")

Try
   number = Decimal.Parse(value, style, provider)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '$6,032.51'.

provider = New CultureInfo("en-US")
number = Decimal.Parse(value, style, provider)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '$6,032.51' converted to 6032.51.

Açıklamalar

style parametresi, ayrıştırma işleminin başarılı olması için s parametresinin izin verilen biçimini tanımlar.The style parameter defines the allowable format of the s parameter for the parse operation to succeed. NumberStyles numaralandırmasından bit bayrakları birleşimi olmalıdır.It must be a combination of bit flags from the NumberStyles enumeration. Aşağıdaki NumberStyles üyeleri desteklenmez:The following NumberStyles members are not supported:

styledeğerine bağlı olarak, s parametresi aşağıdaki öğeleri içerebilir:Depending on the value of style, the s parameter may include the following elements:

RW [$] imzalayabilirsiniz [basamaklar,] rakamlar [. kesirli basamaklar] [e [imzala] basamaklar] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır.Elements in square brackets ([ and ]) are optional. Aşağıdaki tablo her öğeyi açıklar.The following table describes each element.

ÖğeElement AçıklamaDescription
$ Kültüre özgü para birimi simgesi.A culture-specific currency symbol. Dizedeki konumu, provider parametresinin GetFormat metodu tarafından döndürülen NumberFormatInfo nesnesinin CurrencyNegativePattern ve CurrencyPositivePattern özellikleri tarafından tanımlanır.Its position in the string is defined by the CurrencyNegativePattern and CurrencyPositivePattern properties of the NumberFormatInfo object returned by the GetFormat method of the provider parameter. style NumberStyles.AllowCurrencySymbol bayrağını içeriyorsa para birimi simgesi s görünebilir.The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
RWws İsteğe bağlı beyaz boşluk.Optional white space. style NumberStyles.AllowLeadingWhite bayrağını içeriyorsa, s başlangıcında boşluk görünebilir ve style bayrağını içeriyorsa, s sonunda görünebilirler.NumberStyles.AllowTrailingWhiteWhite space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
signsign İsteğe bağlı bir işaret.An optional sign. İşareti, style NumberStyles.AllowLeadingSign bayrağını içeriyorsa s başlangıcında görünebilir ve style bayrağını içeriyorsa s sonunda görünebilir.NumberStyles.AllowTrailingSignThe sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingSign flag. style NumberStyles.AllowParentheses bayrağını içeriyorsa, s negatif bir değer belirtmek için parantez kullanılabilir.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
54digits 0 İle 9 arasında değişen bir basamak dizisi.A sequence of digits ranging from 0 to 9.
,, Kültüre özgü binler basamaklarını ayıran simge.A culture-specific thousands separator symbol. provider tarafından tanımlanan kültürün binlik ayırıcısı, style NumberStyles.AllowThousands bayrağını içeriyorsa s görünür.The thousands separator of the culture defined by provider can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Bir kültüre özgü ondalık nokta sembolü.A culture-specific decimal point symbol. provider tarafından tanımlanan kültürün ondalık nokta simgesi style NumberStyles.AllowDecimalPoint bayrağını içeriyorsa s görünür.The decimal point symbol of the culture defined by provider can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
kesirli basamaklarfractional-digits 0 İle 9 arasında değişen bir basamak dizisi.A sequence of digits ranging from 0 to 9. Kesirli basamaklar, yalnızca style NumberStyles.AllowDecimalPoint bayrağını içeriyorsa s görünebilir.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
ae Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. style NumberStyles.AllowExponent bayrağını içeriyorsa s parametresi üstel gösterimde bir sayıyı temsil edebilir.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Not

s, style bağımsız değişkeninin değerine bakılmaksızın ayrıştırma işlemi tarafından yok sayılır (U + 0000) karakter yok sayılır.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Yalnızca rakamları olan (None stiline karşılık gelen) bir dize, Decimal türünün aralığındaki her zaman başarıyla ayrıştırır.A string with digits only (which corresponds to the None style) always parses successfully if it is in the range of the Decimal type. Kalan NumberStyles üyeleri,, ancak giriş dizesinde bulunması gerekli olmayan öğeleri denetler.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. Aşağıdaki tabloda, bireysel NumberStyles üyelerin solabilecek öğeleri nasıl etkilediği gösterilmektedir.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

NumberStyles değeriNumberStyles value Basamaklara olarak s bileşeninde izin verilen öğelerElements permitted in s in addition to digits
None Yalnızca basamaklar öğesi.The digits element only.
AllowDecimalPoint .The . ve kesirli basamaklar öğeleri.and fractional-digits elements.
AllowExponent s parametresi üstel gösterimi de kullanabilir.The s parameter can also use exponential notation. Bu bayrak, form basamaklarıEbasamaklarıbiçimindeki değerleri destekler; pozitif veya negatif işaretler ve ondalık nokta sembolleri gibi öğelerle dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.This flag supports values in the form digitsEdigits; additional flags are needed to successfully parse strings with elements such as positive or negative signs and decimal point symbols.
AllowLeadingWhite sbaşındaki WS öğesi.The ws element at the beginning of s.
AllowTrailingWhite ssonundaki WS öğesi.The ws element at the end of s.
AllowLeadingSign sbaşındaki imzala öğesi.The sign element at the beginning of s.
AllowTrailingSign ssonundaki işaret öğesi.The sign element at the end of s.
AllowParentheses Sayısal değeri çevreleyen parantezler biçimindeki işaret öğesi.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands , Öğesi.The , element.
AllowCurrencySymbol $ öğesi.The $ element.
Currency Tümü.All. s parametresi, bir onaltılı sayıyı veya üstel gösterimdeki bir sayıyı temsil edemez.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float sbaşındaki veya sonundaki WS öğesi, sbaşlangıcında oturum açın ve .The ws element at the beginning or end of s, sign at the beginning of s, and the . sembol.symbol. s parametresi üstel gösterimi de kullanabilir.The s parameter can also use exponential notation.
Number ws, sign,, ve .The ws, sign, ,, and . ög.elements.
Any s hariç tüm stiller, onaltılı bir sayıyı temsil edemez.All styles, except s cannot represent a hexadecimal number.

provider parametresi, NumberFormatInfo veya CultureInfo nesnesi gibi bir IFormatProvider uygulamasıdır.The provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. provider parametresi, ayrıştırılırken kullanılan kültüre özgü bilgiler sağlar.The provider parameter supplies culture-specific information used in parsing. provider null, iş parçacığı geçerli kültürü kullanılır.If provider is null, the thread current culture is used.

Bir Decimal nesnesi 29 basamaklı bir duyarlığa sahiptir.A Decimal object has 29 digits of precision. s 29 ' dan fazla basamağa sahip olan, ancak kesirli bölümü olan ve MaxValue ve MinValuearalığı içinde yer alan bir sayıyı temsil ediyorsa, sayı yuvarlanır, kesilmez, en yakın yuvarlama kullanılarak 29 basamağa yuvarlanır.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Bir ayrıştırma işlemi sırasında s parametresinde bir ayırıcıyla karşılaşılırsa ve ilgili para birimi veya sayı ondalık ve Grup ayırıcılar aynı ise, ayrıştırma işlemi, ayırıcının bir grup ayırıcısı yerine ondalık ayırıcı olduğunu varsayar.If a separator is encountered in the s parameter during a parse operation, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Ayrıca bkz.

Parse(String, IFormatProvider)

Bir sayının dize gösterimini, belirtilen kültüre özgü biçim bilgilerini kullanarak Decimal eşdeğerine dönüştürür.Converts the string representation of a number to its Decimal equivalent using the specified culture-specific format information.

public:
 static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider);
public static decimal Parse (string s, IFormatProvider provider);
static member Parse : string * IFormatProvider -> decimal
Public Shared Function Parse (s As String, provider As IFormatProvider) As Decimal

Parametreler

s
String

Dönüştürülecek sayının dize gösterimi.The string representation of the number to convert.

provider
IFormatProvider

shakkında kültüre özgü ayrıştırma bilgileri sağlayan bir IFormatProvider.An IFormatProvider that supplies culture-specific parsing information about s.

Döndürülenler

Decimal

providertarafından belirtilen s içindeki sayıya eşdeğer Decimal numarası.The Decimal number equivalent to the number contained in s as specified by provider.

Özel durumlar

snull.s is null.

s doğru biçimde değil.s is not of the correct format.

s, MinValue veya MaxValuedaha büyük bir sayıyı temsil eder.s represents a number less than MinValue or greater than MaxValue.

Örnekler

Aşağıdaki örnek, bir Web formunun düğme tıklamalı olay işleyicisidir.The following example is the button click event handler of a Web form. Kullanıcının yerel ayarını öğrenmek için HttpRequest.UserLanguages özelliği tarafından döndürülen diziyi kullanır.It uses the array returned by the HttpRequest.UserLanguages property to determine the user's locale. Daha sonra bu yerel ayara karşılık gelen bir CultureInfo nesnesi oluşturur.It then instantiates a CultureInfo object that corresponds to that locale. Bu CultureInfo nesnesine ait NumberFormatInfo nesnesi daha sonra kullanıcının girişini Decimal bir değere dönüştürmek için Parse(String, IFormatProvider) yöntemine geçirilir.The NumberFormatInfo object that belongs to that CultureInfo object is then passed to the Parse(String, IFormatProvider) method to convert the user's input to a Decimal value.

protected void OkToDecimal_Click(object sender, EventArgs e)
{
   string locale;
   decimal number;
   CultureInfo culture;

   // Return if string is empty
   if (String.IsNullOrEmpty(this.inputNumber.Text))
      return;

   // Get locale of web request to determine possible format of number
   if (Request.UserLanguages.Length == 0)
      return;
   locale = Request.UserLanguages[0];
   if (String.IsNullOrEmpty(locale))
      return;

  // Instantiate CultureInfo object for the user's locale
   culture = new CultureInfo(locale);

   // Convert user input from a string to a number
   try
   {
      number = Decimal.Parse(this.inputNumber.Text, culture.NumberFormat);
   }
   catch (FormatException)
   {
      return;
   }
   catch (Exception)
   {
      return;
   }
   // Output number to label on web form
   this.outputNumber.Text = "Number is " + number.ToString();
}
Protected Sub OkToDecimal_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToDecimal.Click
   Dim locale As String
   Dim culture As CultureInfo
   Dim number As Decimal

   ' Return if string is empty
   If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub

   ' Get locale of web request to determine possible format of number
   If Request.UserLanguages.Length = 0 Then Exit Sub
   locale = Request.UserLanguages(0)
   If String.IsNullOrEmpty(locale) Then Exit Sub

   ' Instantiate CultureInfo object for the user's locale
   culture = New CultureInfo(locale)

   ' Convert user input from a string to a number
   Try
      number = Decimal.Parse(Me.inputNumber.Text, culture.NumberFormat)
   Catch ex As FormatException
      Exit Sub
   Catch ex As Exception
      Exit Sub
   End Try

   ' Output number to label on web form
   Me.outputNumber.Text = "Number is " & number.ToString()
End Sub

Açıklamalar

Parse(String, IFormatProvider) yönteminin bu aşırı yüklemesi, Decimal bir değere çeşitli yollarla biçimlendirilebilen metni dönüştürmek için yaygın olarak kullanılır.This overload of the Parse(String, IFormatProvider) method is commonly used to convert text that can be formatted in a variety of ways to a Decimal value. Örneğin, bir kullanıcı tarafından bir HTML metin kutusuna girilen metni sayısal bir değere dönüştürmek için kullanılabilir.For example, it can be used to convert the text entered by a user into an HTML text box to a numeric value.

s parametresi bir sayı biçimi içerir:The s parameter contains a number of the form:

RW imzalayabilirsiniz [basamaklar,] rakamlar [. kesirli basamaklar] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır.Elements in square brackets ([ and ]) are optional. Aşağıdaki tablo her öğeyi açıklar.The following table describes each element.

ÖğeElement AçıklamaDescription
RWws İsteğe bağlı beyaz boşluk.Optional white space.
signsign İsteğe bağlı bir işaret.An optional sign.
54digits 0 İle 9 arasında değişen bir basamak dizisi.A sequence of digits ranging from 0 to 9.
,, Kültüre özgü binler basamaklarını ayıran simge.A culture-specific thousands separator symbol.
.. Bir kültüre özgü ondalık nokta sembolü.A culture-specific decimal point symbol.
kesirli basamaklarfractional-digits 0 İle 9 arasında değişen bir basamak dizisi.A sequence of digits ranging from 0 to 9.

s parametresi NumberStyles.Number stili kullanılarak yorumlanır.The s parameter is interpreted using the NumberStyles.Number style. Bu, boşluk ve binlik ayırıcılarına izin verildiği, ancak para birimi simgelerine izin verilmediği anlamına gelir.This means that white space and thousands separators are allowed but currency symbols are not. siçinde bulunabilecek öğeleri (örn. para birimi sembolleri, binlerce ayırıcılar ve beyaz boşluk) açıkça tanımlamak için Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.To explicitly define the elements (such as currency symbols, thousands separators, and white space) that can be present in s, use the Decimal.Parse(String, NumberStyles, IFormatProvider) method.

provider parametresi, NumberFormatInfo veya CultureInfo nesnesi gibi bir IFormatProvider uygulamasıdır.The provider parameter is an IFormatProvider implementation, such as a NumberFormatInfo or CultureInfo object. provider parametresi, ayrıştırılırken kullanılan kültüre özgü bilgiler sağlar.The provider parameter supplies culture-specific information used in parsing. provider null, iş parçacığı geçerli kültürü kullanılır.If provider is null, the thread current culture is used.

Bir Decimal nesnesi 29 basamaklı bir duyarlığa sahiptir.A Decimal object has 29 digits of precision. s 29 ' dan fazla basamağa sahip olan, ancak kesirli bölümü olan ve MaxValue ve MinValuearalığı içinde yer alan bir sayıyı temsil ediyorsa, sayı yuvarlanır, kesilmez, en yakın yuvarlama kullanılarak 29 basamağa yuvarlanır.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Bir ayrıştırma işlemi sırasında s parametresinde bir ayırıcıyla karşılaşılırsa ve ilgili para birimi veya sayı ondalık ve Grup ayırıcılar aynı ise, ayrıştırma işlemi, ayırıcının bir grup ayırıcısı yerine ondalık ayırıcı olduğunu varsayar.If a separator is encountered in the s parameter during a parse operation, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Ayrıca bkz.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Bir sayının span gösterimini, belirtilen stili ve kültüre özgü biçimi kullanarak Decimal eşdeğerine dönüştürür.Converts the span representation of a number to its Decimal equivalent using the specified style and culture-specific format.

public static decimal Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = null) As Decimal

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek sayıyı temsil eden karakterleri içeren yayılma.The span containing the characters representing the number to convert.

style
NumberStyles

s' de bulunabilecek stil öğelerini gösteren NumberStyles değerlerinin bit düzeyinde birleşimi.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Belirtmek için tipik bir değer Number.A typical value to specify is Number.

provider
IFormatProvider

sbiçimi hakkında kültüre özgü bilgiler sağlayan IFormatProvider nesnesi.An IFormatProvider object that supplies culture-specific information about the format of s.

Döndürülenler

Decimal

style ve providertarafından belirtilen s içindeki sayıya eşdeğer Decimal numarası.The Decimal number equivalent to the number contained in s as specified by style and provider.

Parse(String)

Bir sayının dize gösterimini Decimal eşdeğerine dönüştürür.Converts the string representation of a number to its Decimal equivalent.

public:
 static System::Decimal Parse(System::String ^ s);
public static decimal Parse (string s);
static member Parse : string -> decimal
Public Shared Function Parse (s As String) As Decimal

Parametreler

s
String

Dönüştürülecek sayının dize gösterimi.The string representation of the number to convert.

Döndürülenler

Decimal

sbulunan sayının eşdeğeri.The equivalent to the number contained in s.

Özel durumlar

snull.s is null.

s doğru biçimde değil.s is not in the correct format.

s, MinValue veya MaxValuedaha büyük bir sayıyı temsil eder.s represents a number less than MinValue or greater than MaxValue.

Örnekler

Aşağıdaki kod örneği, Decimal değerlerinin dize temsillerini ayrıştırmak için Parse(String) yöntemini kullanır.The following code example uses the Parse(String) method to parse string representations of Decimal values.

string value;
decimal number;
// Parse an integer with thousands separators.
value = "16,523,421";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    16,523,421' converted to 16523421.

// Parse a floating point value with thousands separators
value = "25,162.1378";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    25,162.1378' converted to 25162.1378.

// Parse a floating point number with US currency symbol.
value = "$16,321,421.75";
try
{
   number = Decimal.Parse(value);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '$16,321,421.75'.

// Parse a number in exponential notation
value = "1.62345e-02";
try
{
   number = Decimal.Parse(value);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '1.62345e-02'.
Dim value As String
Dim number As Decimal

' Parse an integer with thousands separators. 
value = "16,523,421"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    16,523,421' converted to 16523421.

' Parse a floating point value with thousands separators
value = "25,162.1378"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    25,162.1378' converted to 25162.1378.

' Parse a floating point number with US currency symbol.
value = "$16,321,421.75"
Try
   number = Decimal.Parse(value)
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
'    Unable to parse '$16,321,421.75'.  

' Parse a number in exponential notation
value = "1.62345e-02"
Try
   number = Decimal.Parse(value)
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '1.62345e-02'. 

Açıklamalar

s parametresi bir sayı içerir:Parameter s contains a number of the form:

RW imzalayabilirsiniz [basamaklar,] rakamlar [. kesirli basamaklar] [ws][ws][sign][digits,]digits[.fractional-digits][ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır.Elements in square brackets ([ and ]) are optional. Aşağıdaki tablo her öğeyi açıklar.The following table describes each element.

ÖğeElement AçıklamaDescription
RWws İsteğe bağlı beyaz boşluk.Optional white space.
signsign İsteğe bağlı bir işaret.An optional sign.
54digits 0 İle 9 arasında değişen bir basamak dizisi.A sequence of digits ranging from 0 to 9.
,, Kültüre özgü binler basamaklarını ayıran simge.A culture-specific thousands separator symbol.
.. Bir kültüre özgü ondalık nokta sembolü.A culture-specific decimal point symbol.
kesirli basamaklarfractional-digits 0 İle 9 arasında değişen bir basamak dizisi.A sequence of digits ranging from 0 to 9.

s parametresi NumberStyles.Number stili kullanılarak yorumlanır.Parameter s is interpreted using the NumberStyles.Number style. Bu, boşluk ve binlik ayırıcılarına izin verildiği, ancak para birimi simgelerine izin verilmediği anlamına gelir.This means that white space and thousands separators are allowed but currency symbols are not. siçinde bulunabilecek öğeleri (örn. para birimi sembolleri, binlerce ayırıcılar ve beyaz boşluk) açıkça tanımlamak için Decimal.Parse(String, NumberStyles) veya Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.To explicitly define the elements (such as currency symbols, thousands separators, and white space) that can be present in s, use either the Decimal.Parse(String, NumberStyles) or the Decimal.Parse(String, NumberStyles, IFormatProvider) method.

s parametresi, geçerli sistem kültürü için başlatılmış bir NumberFormatInfo biçimlendirme bilgileri kullanılarak ayrıştırılır.Parameter s is parsed using the formatting information in a NumberFormatInfo initialized for the current system culture. Daha fazla bilgi için bkz. CurrentInfo.For more information, see CurrentInfo. Başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi ayrıştırmak için Decimal.Parse(String, IFormatProvider) veya Decimal.Parse(String, NumberStyles, IFormatProvider) metodunu kullanın.To parse a string using the formatting information of some other culture, use the Decimal.Parse(String, IFormatProvider) or Decimal.Parse(String, NumberStyles, IFormatProvider) method.

Gerekirse, s değeri en yakın yuvarlama kullanılarak yuvarlanır.If necessary, the value of s is rounded using rounding to nearest.

Decimal, 29 basamak duyarlığa sahiptir.A Decimal has 29 digits of precision. s 29 ' dan fazla basamağa sahip olan, ancak kesirli bölümü olan ve MaxValue ve MinValuearalığı içinde yer alan bir sayıyı temsil ediyorsa, sayı yuvarlanır, kesilmez, en yakın yuvarlama kullanılarak 29 basamağa yuvarlanır.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Bir ayrıştırma işlemi sırasında s parametresinde bir ayırıcıyla karşılaşıldı ve ilgili para birimi veya sayı ondalık ve grup ayırıcıları aynı ise, Parse işlemi ayırıcının bir grup ayırıcısı yerine ondalık ayırıcı olduğunu varsayar.If during a parse operation a separator is encountered in the s parameter, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Ayrıca bkz.

Parse(String, NumberStyles)

Belirtilen stildeki bir sayının dize gösterimini Decimal eşdeğerine dönüştürür.Converts the string representation of a number in a specified style to its Decimal equivalent.

public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static decimal Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> decimal
Public Shared Function Parse (s As String, style As NumberStyles) As Decimal

Parametreler

s
String

Dönüştürülecek sayının dize gösterimi.The string representation of the number to convert.

style
NumberStyles

s' de bulunabilecek stil öğelerini gösteren NumberStyles değerlerinin bit düzeyinde birleşimi.A bitwise combination of NumberStyles values that indicates the style elements that can be present in s. Belirtmek için tipik bir değer Number.A typical value to specify is Number.

Döndürülenler

Decimal

styletarafından belirtilen s içindeki sayıya eşdeğer Decimal numarası.The Decimal number equivalent to the number contained in s as specified by style.

Özel durumlar

snull.s is null.

style NumberStyles bir değer değil.style is not a NumberStyles value.

-veya--or- style AllowHexSpecifier değeridir.style is the AllowHexSpecifier value.

s doğru biçimde değil.s is not in the correct format.

s, MinValue veya MaxValue daha büyük bir sayıyı temsil eders represents a number less than MinValue or greater than MaxValue

Örnekler

Aşağıdaki kod örneği, en-US kültür kullanılarak Decimal değerlerinin dize temsillerini ayrıştırmak için Parse(String, NumberStyles) yöntemini kullanır.The following code example uses the Parse(String, NumberStyles) method to parse the string representations of Decimal values using the en-US culture.

string value;
decimal number;
NumberStyles style;

// Parse string with a floating point value using NumberStyles.None.
value = "8694.12";
style = NumberStyles.None;
try
{
   number = Decimal.Parse(value, style);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '8694.12'.

// Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '8694.12' converted to 8694.12.

// Parse string with negative value in parentheses
value = "(1,789.34)";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands |
        NumberStyles.AllowParentheses;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '(1,789.34)' converted to -1789.34.

// Parse string using Number style
value = " -17,623.49 ";
style = NumberStyles.Number;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    ' -17,623.49 ' converted to -17623.49.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles

' Parse string with a floating point value using NumberStyles.None. 
value = "8694.12"
style = NumberStyles.None
Try
   number = Decimal.Parse(value, style)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
'    Unable to parse '8694.12'.

' Parse string with a floating point value and allow decimal point. 
style = NumberStyles.AllowDecimalPoint
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    '8694.12' converted to 8694.12.

' Parse string with negative value in parentheses
value = "(1,789.34)"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands Or _
        NumberStyles.AllowParentheses 
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    '(1,789.34)' converted to -1789.34.

' Parse string using Number style
value = " -17,623.49 "
style = NumberStyles.Number
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    ' -17,623.49 ' converted to -17623.49.

Açıklamalar

style parametresi, ayrıştırma işleminin başarılı olması için s parametresinde izin verilen stil öğelerini (binlik ayırıcılar, beyaz boşluk ve para birimi sembolleri) tanımlar.The style parameter defines the style elements (such as thousands separators, white space, and currency symbols) that are allowed in the s parameter for the parse operation to succeed. NumberStyles numaralandırmasından bit bayrakları birleşimi olmalıdır.It must be a combination of bit flags from the NumberStyles enumeration. Aşağıdaki NumberStyles üyeleri desteklenmez:The following NumberStyles members are not supported:

styledeğerine bağlı olarak, s parametresi aşağıdaki öğeleri içerebilir:Depending on the value of style, the s parameter may include the following elements:

RW [$] imzalayabilirsiniz [basamaklar,] rakamlar [. kesirli basamaklar] [e [imzala] basamaklar] [ws][ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır.Elements in square brackets ([ and ]) are optional. Aşağıdaki tablo her öğeyi açıklar.The following table describes each element.

ÖğeElement AçıklamaDescription
RWws İsteğe bağlı beyaz boşluk.Optional white space. style NumberStyles.AllowLeadingWhite bayrağını içeriyorsa, s başlangıcında boşluk görünebilir ve style bayrağını içeriyorsa, s sonunda görünebilirler.NumberStyles.AllowTrailingWhiteWhite space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ Kültüre özgü para birimi simgesi.A culture-specific currency symbol. Dizedeki konumu, geçerli kültürün NumberFormatInfo.CurrencyNegativePattern ve NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından tanımlanır.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. style NumberStyles.AllowCurrencySymbol bayrağını içeriyorsa, geçerli kültürün para birimi simgesi s görünebilir.The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign İsteğe bağlı bir işaret.An optional sign. İşareti, style NumberStyles.AllowLeadingSign bayrağını içeriyorsa s başlangıcında görünebilir ve style bayrağını içeriyorsa s sonunda görünebilir.NumberStyles.AllowTrailingSignThe sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingSign flag. style NumberStyles.AllowParentheses bayrağını içeriyorsa, s negatif bir değer belirtmek için parantez kullanılabilir.Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
54digits 0 İle 9 arasında değişen bir basamak dizisi.A sequence of digits ranging from 0 to 9.
,, Kültüre özgü binler basamaklarını ayıran simge.A culture-specific thousands separator symbol. style NumberStyles.AllowThousands bayrağını içeriyorsa, geçerli kültürün binlik ayırıcısı s görünebilir.The current culture's thousands separator can appear in s if style includes the NumberStyles.AllowThousands flag.
.. Bir kültüre özgü ondalık nokta sembolü.A culture-specific decimal point symbol. style NumberStyles.AllowDecimalPoint bayrağını içeriyorsa, geçerli kültürün ondalık noktası simgesi s görünebilir.The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
kesirli basamaklarfractional-digits 0 İle 9 arasında değişen bir basamak dizisi.A sequence of digits ranging from 0 to 9. Kesirli basamaklar, yalnızca style NumberStyles.AllowDecimalPoint bayrağını içeriyorsa s görünebilir.Fractional digits can appear in s only if style includes the NumberStyles.AllowDecimalPoint flag.
ae Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri.The 'e' or 'E' character, which indicates that the value is represented in exponential notation. style NumberStyles.AllowExponent bayrağını içeriyorsa s parametresi üstel gösterimde bir sayıyı temsil edebilir.The s parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.

Not

s, style bağımsız değişkeninin değerine bakılmaksızın ayrıştırma işlemi tarafından yok sayılır (U + 0000) karakter yok sayılır.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Yalnızca rakamları olan (None stiline karşılık gelen) bir dize, Decimal türünün aralığındaki her zaman başarıyla ayrıştırır.A string with digits only (which corresponds to the None style) always parses successfully if it is in the range of the Decimal type. Kalan NumberStyles üyeleri,, ancak giriş dizesinde bulunması gerekli olmayan öğeleri denetler.The remaining NumberStyles members control elements that may be but are not required to be present in the input string. Aşağıdaki tabloda, bireysel NumberStyles üyelerin solabilecek öğeleri nasıl etkilediği gösterilmektedir.The following table indicates how individual NumberStyles members affect the elements that may be present in s.

NumberStyles değeriNumberStyles value Basamaklara olarak s bileşeninde izin verilen öğelerElements permitted in s in addition to digits
None Yalnızca basamaklar öğesi.The digits element only.
AllowDecimalPoint .The . ve kesirli basamaklar öğeleri.and fractional-digits elements.
AllowExponent s parametresi üstel gösterimi de kullanabilir.The s parameter can also use exponential notation. Bu bayrak, form basamaklarıEbasamaklarıbiçimindeki değerleri destekler; pozitif veya negatif işaretler ve ondalık nokta sembolleri gibi öğelerle dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.This flag supports values in the form digitsEdigits; additional flags are needed to successfully parse strings with elements such as positive or negative signs and decimal point symbols.
AllowLeadingWhite sbaşındaki WS öğesi.The ws element at the beginning of s.
AllowTrailingWhite ssonundaki WS öğesi.The ws element at the end of s.
AllowLeadingSign sbaşındaki imzala öğesi.The sign element at the beginning of s.
AllowTrailingSign ssonundaki işaret öğesi.The sign element at the end of s.
AllowParentheses Sayısal değeri çevreleyen parantezler biçimindeki işaret öğesi.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands , Öğesi.The , element.
AllowCurrencySymbol $ öğesi.The $ element.
Currency Tümü.All. s parametresi, bir onaltılı sayıyı veya üstel gösterimdeki bir sayıyı temsil edemez.The s parameter cannot represent a hexadecimal number or a number in exponential notation.
Float sbaşındaki veya sonundaki WS öğesi, sbaşlangıcında oturum açın ve . simgesi.The ws element at the beginning or end of s, sign at the beginning of s, and the . symbol. s parametresi üstel gösterimi de kullanabilir.The s parameter can also use exponential notation.
Number ws, sign, , ve . öğeleri.The ws, sign, , and . elements.
Any s hariç tüm stiller, onaltılı bir sayıyı temsil edemez.All styles, except s cannot represent a hexadecimal number.

s parametresi, geçerli sistem kültürü için başlatılmış bir NumberFormatInfo nesnesindeki biçimlendirme bilgileri kullanılarak ayrıştırılır.The s parameter is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. Daha fazla bilgi için bkz. CurrentInfo.For more information, see CurrentInfo.

Decimal, 29 basamak duyarlığa sahiptir.A Decimal has 29 digits of precision. s 29 ' dan fazla basamağa sahip olan, ancak kesirli bölümü olan ve MaxValue ve MinValuearalığı içinde yer alan bir sayıyı temsil ediyorsa, sayı yuvarlanır, kesilmez, en yakın yuvarlama kullanılarak 29 basamağa yuvarlanır.If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

Bir ayrıştırma işlemi sırasında s parametresinde bir ayırıcıyla karşılaşırsanız, styles NumberStyles.AllowThousands ve NumberStyles.AllowDecimalPoint değerlerini, geçerli para birimi veya sayı ondalık ve grup ayırıcıları de aynı olduğunda, ayrıştırma işlemi, ayırıcının bir grup ayırıcısı yerine ondalık ayırıcı olduğunu varsayar.If a separator is encountered in the s parameter during a parse operation, styles includes the NumberStyles.AllowThousands and NumberStyles.AllowDecimalPoint values, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

Ayrıca bkz.

Şunlara uygulanır