Aracılığıyla paylaş


Decimal.Parse Yöntem

Tanım

Bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

Aşırı Yüklemeler

Name Description
Parse(String)

Bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Bir karakter aralığını bir değere ayrıştırıyor.

Parse(String, NumberStyles)

Belirtilen stildeki bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

Parse(String, IFormatProvider)

Belirtilen kültüre özgü biçim bilgilerini kullanarak bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Belirtilen stili ve kültüre özgü biçimi kullanarak bir sayının span gösterimini eşdeğerine Decimal dönüştürür.

Parse(String, NumberStyles, IFormatProvider)

Belirtilen stili ve kültüre özgü biçimi kullanarak bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

Parse(String)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

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.

Döndürülenler

içinde sbulunan sayıya eşdeğerdir.

Özel durumlar

s, null'e eşittir.

s doğru biçimde değil.

s Decimal.MinValue değerinden küçük veya Decimal.MaxValue değerinden büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki kod örneği, değerlerin Parse(String) dize gösterimlerini Decimal ayrıştırmak için yöntemini kullanır.

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'.
// Parse an integer with thousands separators.
let value = "16,523,421"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
//    '16,523,421' converted to 16523421.

// Parse a floating point value with thousands separators
let value = "25,162.1378"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
//    '25,162.1378' converted to 25162.1378.

// Parse a floating point number with US currency symbol.
let value = "$16,321,421.75"
try
    let number = Decimal.Parse value
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '$16,321,421.75'.

// Parse a number in exponential notation
let value = "1.62345e-02"
try
    let number = Decimal.Parse value
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{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

Parametre s formun bir sayısını içerir:

[ws] [sign] [rakamlar,]rakamlar[.kesirli-basamaklar][ws]

Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tabloda her öğe açıklanmaktadır.

Öğe Açıklama
Ws İsteğe bağlı boşluk.
imza İsteğe bağlı bir işaret.
Basamak 0 ile 9 arasında bir basamak dizisi.
, Kültüre özgü binlik ayırıcı simgesi.
. Kültüre özgü ondalık nokta simgesi.
kesirli basamaklar 0 ile 9 arasında bir basamak dizisi.

Parametre s , stil kullanılarak NumberStyles.Number yorumlanır. Başka bir deyişle boşluk ve binlik ayırıcılara izin verilir, ancak para birimi simgeleri kullanılamaz. içinde sbulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcıları ve boşluk gibi) açıkça tanımlamak için veya Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanınDecimal.Parse(String, NumberStyles).

Parametre s , geçerli sistem kültürü için başlatılan bir NumberFormatInfo içindeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. CurrentInfo. Başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi ayrıştırmak için veya Decimal.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanınDecimal.Parse(String, IFormatProvider).

Gerekirse değeri s , yuvarlama kullanılarak en yakına yuvarlanır.

A,29 Decimal basamaklı duyarlıklara sahiptir. 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederses, sayı yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı bulur.

Ayrıştırma işlemi sırasında parametrede s bir ayırıcıyla karşılaşılırsa ve geçerli para birimi veya sayı ondalık ve grup ayırıcıları aynıysa, ayrıştırma işlemi ayırıcının grup ayırıcısı yerine ondalık ayırıcısı olduğunu varsayar. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.

public:
 static System::Decimal Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Decimal>::Parse;
public static decimal Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Decimal

Parametreler

utf8Text
ReadOnlySpan<Byte>

Ayrıştırılacak UTF-8 karakter aralığı.

provider
IFormatProvider

hakkında utf8Textkültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

ayrıştırma utf8Textişleminin sonucu.

Uygulamalar

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, IFormatProvider)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Bir karakter aralığını bir değere ayrıştırıyor.

public:
 static System::Decimal Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Decimal>::Parse;
public static decimal Parse(ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Decimal

Parametreler

s
ReadOnlySpan<Char>

Ayrıştırılacak karakterlerin yayılma alanı.

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

ayrıştırma sişleminin sonucu.

Uygulamalar

Şunlara uygulanır

Parse(String, NumberStyles)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Belirtilen stildeki bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

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.

style
NumberStyles

içinde sbulunabilecek stil öğelerini gösteren bit düzeyinde bir değer birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.

Döndürülenler

Decimal tarafından stylebelirtildiği gibi içinde s bulunan sayıya eşdeğer sayıdır.

Özel durumlar

s, null'e eşittir.

style bir NumberStyles değer değildir.

-veya-

style AllowHexSpecifier değeridir.

s doğru biçimde değil.

s Decimal.MinValue değerinden küçük veya Decimal.MaxValue değerinden büyük bir sayıyı temsil eder

Örnekler

Aşağıdaki kod örneği, Parse(String, NumberStyles) en-US kültürünü kullanarak değerlerin Decimal dize gösterimlerini ayrıştırmak için yöntemini kullanır.

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.
// Parse string with a floating point value using NumberStyles.None.
let value = "8694.12"
let style = NumberStyles.None
try
    let number = Decimal.Parse(value, style)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '8694.12'.

// Parse string with a floating point value and allow decimal point.
let style = NumberStyles.AllowDecimalPoint
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
//    '8694.12' converted to 8694.12.

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

// Parse string using Number style
let value = " -17,623.49 "
let style = NumberStyles.Number
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {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

parametresi, style ayrıştırma işleminin başarılı olması için parametrede s izin verilen stil öğelerini (binlik ayırıcılar, boşluk ve para birimi simgeleri gibi) tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. Aşağıdaki NumberStyles üyeler desteklenmez:

değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

[ws] [$] [sign] [rakamlar,]digits[.fractional-digits][e[sign]digits][ws]

Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tabloda her öğe açıklanmaktadır.

Öğe Açıklama
Ws İsteğe bağlı boşluk. Boşluk bayrağını içeriyorsa başında s ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingWhitesstyle görüntülenebilir.styleNumberStyles.AllowLeadingWhite
$ Kültüre özgü para birimi simgesi. Dizedeki konumu, geçerli kültürün NumberFormatInfo.CurrencyNegativePattern ve NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından tanımlanır. Bayrağı içeriyorsa geçerli kültürün s para birimi simgesi içinde styleNumberStyles.AllowCurrencySymbol görüntülenebilir.
imza İsteğe bağlı bir işaret. İşaret, bayrağın eklenip eklenmediğinin başında ve bayrağın eklenip eklenmediğinin styleNumberStyles.AllowTrailingSigns sonunda görünebilir.sstyleNumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa s negatif bir değeri style belirtmek için içinde kullanılabilirNumberStyles.AllowParentheses.
Basamak 0 ile 9 arasında bir basamak dizisi.
, Kültüre özgü binlik ayırıcı simgesi. Bayrağı içeriyorsa geçerli kültürün binlik ayırıcısı NumberStyles.AllowThousands içinde sstyle görüntülenebilir.
. Kültüre özgü ondalık nokta simgesi. Bayrağı içeriyorsa geçerli kültürün s ondalık noktası simgesi içinde styleNumberStyles.AllowDecimalPoint görüntülenebilir.
kesirli basamaklar 0 ile 9 arasında bir basamak dizisi. Kesirli basamaklar yalnızca s bayrağı içeriyorsa style içinde görüntülenebilirNumberStyles.AllowDecimalPoint.
e Değerin üstel gösterimde temsil olduğunu gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa üstel gösterimde style bir sayıyı NumberStyles.AllowExponent temsil edebilir.

Not

içindeki s sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.

Yalnızca basamak içeren bir dize (stile None karşılık gelir) türün aralığındaysa Decimal her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyeler, giriş dizesinde mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde sbulunabilecek öğeleri nasıl etkilediğini gösterir.

NumberStyles değeri Basamaklara ek olarak s içinde izin verilen öğeler
None Yalnızca rakamlar öğesi.
AllowDecimalPoint . ve kesirli basamaklar öğeleri.
AllowExponent parametresi üstel s gösterim de kullanabilir. Bu bayrak, E basamaklarıbiçimindeki değerleri destekler; pozitif veya negatif işaretler ve ondalık nokta simgeleri gibi öğelerle dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.
AllowLeadingWhite başındaki sws öğesi.
AllowTrailingWhite sonundaki s öğesi.
AllowLeadingSign başındaki ssign öğesi.
AllowTrailingSign sonundaki s öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki sign öğesi.
AllowThousands öğesi.
AllowCurrencySymbol $ öğesi.
Currency Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimdeki bir sayıyı temsil edemez.
Float başındaki veya sonundaki sws öğesi, öğesinin sbaşında ve simgesini imzalar.. parametresi üstel s gösterim de kullanabilir.
Number ws, signve ,. öğeleri.
Any dışındaki s tüm stiller onaltılık bir sayıyı temsil edemez.

s parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. CurrentInfo.

A,29 Decimal basamaklı duyarlıklara sahiptir. 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederses, sayı yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı bulur.

Ayrıştırma işlemi sırasında parametrede s bir ayırıcıyla karşılaşılırsa, styles ve NumberStyles.AllowDecimalPoint değerlerini içerir NumberStyles.AllowThousands ve ilgili para birimi veya sayı ondalık ve grup ayırıcıları aynıysa, ayrıştırma işlemi ayırıcının grup ayırıcısı yerine ondalık ayırıcı olduğunu varsayar. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.

Ayrıca bkz.

Şunlara uygulanır

Parse(String, IFormatProvider)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Belirtilen kültüre özgü biçim bilgilerini kullanarak bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

public:
 static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider);
public:
 static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::Decimal>::Parse;
public static decimal Parse(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.

provider
IFormatProvider

IFormatProvider hakkında skültüre özgü ayrıştırma bilgileri sağlayan bir.

Döndürülenler

Decimal tarafından providerbelirtildiği gibi içinde s bulunan sayıya eşdeğer sayıdır.

Uygulamalar

Özel durumlar

s, null'e eşittir.

s doğru biçimde değil.

s Decimal.MinValue değerinden küçük veya Decimal.MaxValue değerinden büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki örnek, web formunun düğme tıklama olay işleyicisidir. Kullanıcının yerel ayarını belirlemek için özelliği tarafından HttpRequest.UserLanguages döndürülen diziyi kullanır. Ardından bu yerel ayara karşılık gelen bir CultureInfo nesnenin örneğini oluşturur. Daha NumberFormatInfo sonra bu nesneye CultureInfo ait olan nesne, kullanıcının girişini bir Decimal değere dönüştürmek için yöntemine geçirilirParse(String, IFormatProvider).

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

Yönteminin Parse(String, IFormatProvider) bu aşırı yüklemesi genellikle çeşitli yollarla biçimlendirilebilen metni bir Decimal değere dönüştürmek için kullanılır. Örneğin, bir kullanıcı tarafından girilen metni HTML metin kutusuna sayısal bir değere dönüştürmek için kullanılabilir.

s parametresi formun bir sayısını içerir:

[ws] [sign] [rakamlar,]rakamlar[.kesirli-basamaklar][ws]

Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tabloda her öğe açıklanmaktadır.

Öğe Açıklama
Ws İsteğe bağlı boşluk.
imza İsteğe bağlı bir işaret.
Basamak 0 ile 9 arasında bir basamak dizisi.
, Kültüre özgü binlik ayırıcı simgesi.
. Kültüre özgü ondalık nokta simgesi.
kesirli basamaklar 0 ile 9 arasında bir basamak dizisi.

s parametresi stil kullanılarak NumberStyles.Number yorumlanır. Başka bir deyişle boşluk ve binlik ayırıcılara izin verilir, ancak para birimi simgeleri kullanılamaz. içinde sbulunabilecek öğeleri (para birimi simgeleri, binlik ayırıcılar ve boşluk gibi) açıkça tanımlamak için yöntemini kullanın Decimal.Parse(String, NumberStyles, IFormatProvider) .

provider parametresi, veya CultureInfo nesnesi gibi bir IFormatProviderNumberFormatInfo uygulamadır. parametresi, provider ayrıştırmada kullanılan kültüre özgü bilgiler sağlar. ise providernull, iş parçacığı geçerli kültürü kullanılır.

Nesnenin Decimal duyarlık değeri 29 basamaktır. 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederses, sayı yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı bulur.

Ayrıştırma işlemi sırasında parametrede s bir ayırıcıyla karşılaşılırsa ve geçerli para birimi veya sayı ondalık ve grup ayırıcıları aynıysa, ayrıştırma işlemi ayırıcının grup ayırıcısı yerine ondalık ayırıcısı olduğunu varsayar. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.

public static decimal Parse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal

Parametreler

utf8Text
ReadOnlySpan<Byte>

Ayrıştırılacak UTF-8 karakter aralığı.

style
NumberStyles

içinde utf8Textbulunabilecek sayı stillerinin bit düzeyinde birleşimi.

provider
IFormatProvider

hakkında utf8Textkültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

ayrıştırma utf8Textişleminin sonucu.

Uygulamalar

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Belirtilen stili ve kültüre özgü biçimi kullanarak bir sayının span gösterimini eşdeğerine Decimal dönüştürür.

public static decimal Parse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
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 = Nothing) As Decimal

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek sayıyı temsil eden karakterleri içeren yayılma alanı.

style
NumberStyles

içinde sbulunabilecek stil öğelerini gösteren bit düzeyinde bir değer birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.

provider
IFormatProvider

IFormatProvider biçimi shakkında kültüre özgü bilgiler sağlayan bir nesne.

Döndürülenler

Decimal ve providertarafından style belirtilen şekilde içinde s bulunan sayıya eşdeğer sayıdır.

Uygulamalar

Şunlara uygulanır

Parse(String, NumberStyles, IFormatProvider)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Belirtilen stili ve kültüre özgü biçimi kullanarak bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.

public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Decimal>::Parse;
public static decimal Parse(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.

style
NumberStyles

içinde sbulunabilecek stil öğelerini gösteren bit düzeyinde bir değer birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.

provider
IFormatProvider

IFormatProvider biçimi shakkında kültüre özgü bilgiler sağlayan bir nesne.

Döndürülenler

Decimal ve providertarafından style belirtilen şekilde içinde s bulunan sayıya eşdeğer sayıdır.

Uygulamalar

Özel durumlar

s doğru biçimde değil.

s Decimal.MinValue değerinden küçük veya Decimal.MaxValue değerinden büyük bir sayıyı temsil eder.

s, null'e eşittir.

style bir NumberStyles değer değildir.

-veya-

style AllowHexSpecifier değeridir.

Örnekler

Aşağıdaki örnek, değerlerin style dize gösterimlerini Decimal ayrıştırmak için çeşitli ve provider parametreleri kullanır.

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

// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
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.
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
let value = "892 694,12"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let provider = CultureInfo "fr-FR"

let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
//    '892 694,12' converted to 892694.12.

try
    let number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '892 694,12'.

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

try
    let number = Decimal.Parse(value, style, provider)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '$6,032.51'.

let provider = CultureInfo "en-US"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {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 for fr-FR culture.
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

parametresi, style ayrıştırma işleminin s başarılı olması için parametrenin izin verilebilen biçimini tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. Aşağıdaki NumberStyles üyeler desteklenmez:

değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

[ws] [$] [sign] [rakamlar,]digits[.fractional-digits][e[sign]digits][ws]

Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tabloda her öğe açıklanmaktadır.

Öğe Açıklama
$ Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresinin yöntemi provider tarafından döndürülen nesnenin GetFormat ve CurrencyPositivePattern özellikleri NumberFormatInfo tarafından CurrencyNegativePattern tanımlanır. Bayrağı içeriyorsa s para birimi simgesi içinde styleNumberStyles.AllowCurrencySymbol görüntülenebilir.
Ws İsteğe bağlı boşluk. Boşluk bayrağını içeriyorsa başında s ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingWhitesstyle görüntülenebilir.styleNumberStyles.AllowLeadingWhite
imza İsteğe bağlı bir işaret. İşaret, bayrağın eklenip eklenmediğinin başında ve bayrağın eklenip eklenmediğinin styleNumberStyles.AllowTrailingSigns sonunda görünebilir.sstyleNumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa s negatif bir değeri style belirtmek için içinde kullanılabilirNumberStyles.AllowParentheses.
Basamak 0 ile 9 arasında bir basamak dizisi.
, Kültüre özgü binlik ayırıcı simgesi. tarafından tanımlanan provider kültürün binlik ayırıcısı bayrağı içeriyorsa NumberStyles.AllowThousands içinde sstyle görüntülenebilir.
. Kültüre özgü ondalık nokta simgesi. tarafından tanımlanan provider kültürün ondalık noktası simgesi, bayrağı içeriyorsa NumberStyles.AllowDecimalPoint içinde sstyle görüntülenebilir.
kesirli basamaklar 0 ile 9 arasında bir basamak dizisi. Kesirli basamaklar yalnızca s bayrağı içeriyorsa style içinde görüntülenebilirNumberStyles.AllowDecimalPoint.
e Değerin üstel gösterimde temsil olduğunu gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa üstel gösterimde style bir sayıyı NumberStyles.AllowExponent temsil edebilir.

Not

içindeki s sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.

Yalnızca basamak içeren bir dize (stile None karşılık gelir) türün aralığındaysa Decimal her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyeler, giriş dizesinde mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde sbulunabilecek öğeleri nasıl etkilediğini gösterir.

NumberStyles değeri Basamaklara ek olarak s içinde izin verilen öğeler
None Yalnızca rakamlar öğesi.
AllowDecimalPoint . ve kesirli basamaklar öğeleri.
AllowExponent parametresi üstel s gösterim de kullanabilir. Bu bayrak, E basamaklarıbiçimindeki değerleri destekler; pozitif veya negatif işaretler ve ondalık nokta simgeleri gibi öğelerle dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir.
AllowLeadingWhite başındaki sws öğesi.
AllowTrailingWhite sonundaki s öğesi.
AllowLeadingSign başındaki ssign öğesi.
AllowTrailingSign sonundaki s öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki sign öğesi.
AllowThousands öğesi.
AllowCurrencySymbol $ öğesi.
Currency Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimdeki bir sayıyı temsil edemez.
Float başındaki veya sonundaki sws öğesi, öğesinin sbaşında ve simgesindeimzalar. parametresi üstel s gösterim de kullanabilir.
Number ws, sign, , ve . öğeleri.
Any dışındaki s tüm stiller onaltılık bir sayıyı temsil edemez.

provider parametresi, veya CultureInfo nesnesi gibi bir IFormatProviderNumberFormatInfo uygulamadır. parametresi, provider ayrıştırmada kullanılan kültüre özgü bilgiler sağlar. ise providernull, iş parçacığı geçerli kültürü kullanılır.

Nesnenin Decimal duyarlık değeri 29 basamaktır. 29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederses, sayı yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı bulur.

Ayrıştırma işlemi sırasında parametrede s bir ayırıcıyla karşılaşılırsa ve geçerli para birimi veya sayı ondalık ve grup ayırıcıları aynıysa, ayrıştırma işlemi ayırıcının grup ayırıcısı yerine ondalık ayırıcısı olduğunu varsayar. Ayırıcılar hakkında daha fazla bilgi için bkz. CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatorve NumberGroupSeparator.

Ayrıca bkz.

Şunlara uygulanır