Decimal.Parse Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir sayının dize gösterimini eşdeğerine Decimal dönüştürür.
Aşırı Yüklemeler
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 Decimal eşdeğerine 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 Decimal eşdeğerine dönüştürür. |
Parse(String)
- 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 s
bulunan sayıya eşdeğerdir.
Özel durumlar
s
, null
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, 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çlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
Öğe | Açıklama |
---|---|
Ws | İsteğe bağlı beyaz boşluk. |
sign | İsteğe bağlı bir işaret. |
Basamak | 0 İle 9 arasında değişen bir basamak dizisi. |
, | Kültüre özgü binler basamaklarını ayıran simge. |
. | Bir kültüre özgü ondalık nokta sembolü. |
kesirli basamaklar | 0 İle 9 arasında değişen bir basamak dizisi. |
Parametre s
, stil kullanılarak NumberStyles.Number yorumlanır. Bu, boşluk ve binlik ayırıcılarına izin verildiği, ancak para birimi simgelerine izin verilmediği anlamına gelir. içinde s
bulunabilecek öğ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
, en yakına yuvarlama kullanılarak yuvarlanir.
A Decimal , 29 basamaklı duyarlıklara sahiptir. s
29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederse, sayı yuvarlanır, yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı olur.
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ı 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
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 utf8Text
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
ayrıştırma utf8Text
sonucu.
Uygulamalar
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, IFormatProvider)
- 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ılması.
- provider
- IFormatProvider
hakkında s
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
ayrıştırma s
sonucu.
Uygulamalar
Şunlara uygulanır
Parse(String, NumberStyles)
- 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 s
bulunabilecek stil öğelerini gösteren değerlerin bit düzeyinde birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.
Döndürülenler
Decimal tarafından style
belirtildiği gibi içinde bulunan sayıya s
eşdeğer bir sayıdır.
Özel durumlar
s
, null
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
style
parametresi, ayrıştırma işleminin başarılı olması için parametresinde 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 style
s
bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws] [$] [sign] [rakamlar,]rakamlar[.kesirli-basamaklar][e[işaret]rakamlar][ws]
Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
Öğe | Açıklama |
---|---|
Ws | İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa, başında boşluk ve s style bayrağı içeriyorsa sonunda s style NumberStyles.AllowTrailingWhite görüntülenebilir.NumberStyles.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 NumberStyles.AllowCurrencySymbol para birimi simgesi içinde s style görünebilir. |
sign | İsteğe bağlı bir işaret. İşaret, bayrağını içeriyorsa öğesinin s style NumberStyles.AllowLeadingSign başında ve bayrağını içeriyorsa NumberStyles.AllowTrailingSign sonunda s style görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirs . |
Basamak | 0 İle 9 arasında değişen bir basamak dizisi. |
, | Kültüre özgü binler basamaklarını ayıran simge. bayrağını içeriyorsa geçerli kültürün binlik ayırıcısı NumberStyles.AllowThousands içinde style s görüntülenebilir. |
. | Bir kültüre özgü ondalık nokta sembolü. bayrağını style içeriyorsa geçerli kültürün NumberStyles.AllowDecimalPoint ondalık noktası simgesi içinde s görüntülenebilir. |
kesirli basamaklar | 0 İle 9 arasında değişen bir basamak dizisi. Kesirli basamaklar yalnızca style bayrağını NumberStyles.AllowDecimalPoint içeriyorsa içinde s görüntülenebilir. |
E | Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa üstel gösteriminde 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 ancak gerekli olmayan öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde s
bulunabilecek öğeleri nasıl etkilediğini gösterir.
NumberStyles değeri | Basamaklara olarak s bileşeninde izin verilen öğeler |
---|---|
None | Yalnızca rakamlar öğesi. |
AllowDecimalPoint | . ve kesirli basamaklar öğeleri. |
AllowExponent | parametresi üstel s gösterimi de kullanabilir. Bu bayrak, E basamaklarıbiçimindeki değerleri destekler; Pozitif veya negatif işaretler ve ondalık ayırıcı sembolleri gibi öğelerle dizeleri başarıyla ayrıştırmak için ek bayraklar gerekir. |
AllowLeadingWhite | başındaki s ws öğesi. |
AllowTrailingWhite | sonundaki s ws öğesi. |
AllowLeadingSign | başındaki s sign öğesi. |
AllowTrailingSign | sonundaki s sign öğesi. |
AllowParentheses | Sayısal değeri kapsayan parantez biçimindeki işaret öğesi. |
AllowThousands | , öğesi. |
AllowCurrencySymbol | $ öğesi. |
Currency | Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimi olan bir sayıyı temsil edemez. |
Float | başındaki veya sonundaki s ws öğesi, öğesinin s başındaki işareti ve . simgesi. parametresi üstel s gösterimi de kullanabilir. |
Number | ws , sign ve , . öğ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 Decimal , 29 basamaklı duyarlıklara sahiptir. s
29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederse, sayı yuvarlanır, yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı olur.
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çerirse NumberStyles.AllowThousands ve geçerli para birimi veya sayı ondalık ayırıcıları ile 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
Belirtilen kültüre özgü biçim bilgilerini kullanarak bir sayının dize gösterimini Decimal eşdeğerine 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 s
kültüre özgü ayrıştırma bilgileri sağlayan bir.
Döndürülenler
Decimal tarafından provider
belirtildiği gibi içinde bulunan sayıya s
eşdeğer bir sayıdır.
Uygulamalar
Özel durumlar
s
, null
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 örnek, bir Web formunun düğme tıklamalı 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. Bu NumberFormatInfo nesneye CultureInfo ait olan nesne daha sonra kullanıcının girişini bir Decimal değere Parse(String, IFormatProvider) dönüştürmek için yöntemine geçirilir.
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öntemin 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 bir HTML metin kutusuna girilen metni 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çlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
Öğe | Açıklama |
---|---|
Ws | İsteğe bağlı beyaz boşluk. |
sign | İsteğe bağlı bir işaret. |
Basamak | 0 İle 9 arasında değişen bir basamak dizisi. |
, | Kültüre özgü binler basamaklarını ayıran simge. |
. | Bir kültüre özgü ondalık nokta sembolü. |
kesirli basamaklar | 0 İle 9 arasında değişen bir basamak dizisi. |
s
parametresi, stil kullanılarak NumberStyles.Number yorumlanır. Bu, boşluk ve binlik ayırıcılarına izin verildiği, ancak para birimi simgelerine izin verilmediği anlamına gelir. içinde s
bulunabilecek öğ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. provider
parametresi, ayrıştırmada kullanılan kültüre özgü bilgiler sağlar. ise provider
null
, iş parçacığı geçerli kültürü kullanılır.
Nesnenin Decimal 29 basamaklı duyarlık değeri vardır. s
29'dan fazla basamağı olan, ancak kesirli bölümü olan ve aralığı MaxValueMinValueiçinde olan bir sayıyı temsil ederse, sayı yuvarlanır, yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı olur.
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ı 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
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 utf8Text
bulunabilecek sayı stillerinin bit düzeyinde birleşimi.
- provider
- IFormatProvider
hakkında utf8Text
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
ayrıştırma utf8Text
sonucu.
Uygulamalar
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- 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 s
bulunabilecek stil öğelerini gösteren değerlerin bit düzeyinde birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.
- provider
- IFormatProvider
IFormatProvider biçimi s
hakkında kültüre özgü bilgiler sağlayan bir nesne.
Döndürülenler
Decimal ve provider
tarafından style
belirtildiği gibi 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
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 s
bulunabilecek stil öğelerini gösteren değerlerin bit düzeyinde birleşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Number.
- provider
- IFormatProvider
IFormatProvider biçimi s
hakkında kültüre özgü bilgiler sağlayan bir nesne.
Döndürülenler
Decimal ve provider
tarafından style
belirtildiği gibi 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
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
style
parametresi, 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 style
s
bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws] [$] [sign] [rakamlar,]rakamlar[.kesirli-basamaklar][e[işaret]rakamlar][ws]
Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
Öğe | Açıklama |
---|---|
$ | Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresinin yöntemi provider tarafından CurrencyNegativePattern döndürülen nesnenin NumberFormatInfo ve CurrencyPositivePattern özellikleri tarafından GetFormat tanımlanır. Bayrağı içeriyorsa NumberStyles.AllowCurrencySymbol para birimi simgesi içinde s style görünebilir. |
Ws | İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa boşluk başında s style ve bayrağı içeriyorsa sonunda s style NumberStyles.AllowTrailingWhite görüntülenebilir.NumberStyles.AllowLeadingWhite |
sign | İsteğe bağlı bir işaret. İşaret, bayrağını içeriyorsa başında s style ve bayrağını içeriyorsa NumberStyles.AllowLeadingSignNumberStyles.AllowTrailingSign sonunda s style görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirs . |
Basamak | 0 İle 9 arasında değişen bir basamak dizisi. |
, | Kültüre özgü binler basamaklarını ayıran simge. tarafından tanımlanan provider kültürün binlik ayırıcısı bayrağını style içeriyorsa NumberStyles.AllowThousands içinde s görünebilir. |
. | Bir kültüre özgü ondalık nokta sembolü. bayrağını içeriyorsaNumberStyles.AllowDecimalPoint, ile provider tanımlanan kültürün ondalık nokta simgesi içinde s style görünebilir. |
kesirli basamaklar | 0 İle 9 arasında değişen bir basamak dizisi. Kesirli basamaklar yalnızca style bayrağı içeriyorsa NumberStyles.AllowDecimalPoint içinde görüntülenebilirs . |
E | Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa bir sayıyı üstel gösteriminde style NumberStyles.AllowExponent gösterebilir. |
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 basamakları olan 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 bulunması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde s
bulunabilecek öğeleri nasıl etkilediği gösterilir.
NumberStyles değeri | Basamaklara olarak s bileşeninde izin verilen öğeler |
---|---|
None | Yalnızca digits öğesi. |
AllowDecimalPoint | . ve kesirli basamaklar öğeleri. |
AllowExponent | parametresi üstel s gösterimi 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 s ws öğesi. |
AllowTrailingWhite | sonundaki s ws öğesi. |
AllowLeadingSign | başındaki s sign öğesi. |
AllowTrailingSign | sonundaki s sign öğ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österimi olan bir sayıyı temsil edemez. |
Float | başındaki veya sonundaki s ws öğesi, ve simgesinins başında imzalar. parametresi üstel s gösterimi 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. provider
parametresi, ayrıştırmada kullanılan kültüre özgü bilgiler sağlar. ise provider
null
, iş parçacığı geçerli kültürü kullanılır.
Nesnenin Decimal 29 basamaklı duyarlık değeri vardır. s
29'dan fazla basamağı olan, ancak kesirli bölümü olan ve ile aralığında MaxValueMinValueolan bir sayıyı temsil ediyorsanız, sayı yuvarlanır, yuvarlanır, kırpılmaz ve en yakına yuvarlama kullanılarak 29 basamağı olur.
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin