Int64.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 64 bit imzalı tamsayı eşdeğerine dönüştürür.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Parse(String) |
Bir sayının dize gösterimini 64 bit imzalı tamsayı eşdeğerine 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 64 bit imzalı tamsayı eşdeğerine dönüştürür. |
| Parse(String, IFormatProvider) |
Belirli bir kültüre özgü biçimdeki bir sayının dize gösterimini 64 bit imzalı tamsayı 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) |
Bir sayının belirtilen stil ve kültüre özgü biçimdeki span gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür. |
| Parse(String, NumberStyles, IFormatProvider) |
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür. |
Parse(String)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Bir sayının dize gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür.
public:
static long Parse(System::String ^ s);
public static long Parse(string s);
static member Parse : string -> int64
Public Shared Function Parse (s As String) As Long
Parametreler
- s
- String
Dönüştürülecek bir sayı içeren dize.
Döndürülenler
içinde bulunan sayıya eşdeğer 64 bit imzalı stamsayı.
Özel durumlar
s, null'e eşittir.
s doğru biçimde değil.
s
Int64.MinValue değerinden küçük veya Int64.MaxValue değerinden büyük bir sayıyı temsil eder.
Örnekler
Aşağıdaki örnekte, yöntemini kullanarak bir dize değerinin 64 bit imzalı tamsayı değerine nasıl dönüştürüldüğü gösterilmektedir Int64.Parse(String) . Ardından, sonuçta elde edilen uzun tamsayı değerini görüntüler.
using System;
public class ParseInt64
{
public static void Main()
{
Convert(" 179042 ");
Convert(" -2041326 ");
Convert(" +8091522 ");
Convert(" 1064.0 ");
Convert(" 178.3");
Convert(String.Empty);
Convert(((decimal) Int64.MaxValue) + 1.ToString());
}
private static void Convert(string value)
{
try
{
long number = Int64.Parse(value);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to convert '{0}'.", value);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is out of range.", value);
}
}
}
// This example displays the following output to the console:
// Converted ' 179042 ' to 179042.
// Converted ' -2041326 ' to -2041326.
// Converted ' +8091522 ' to 8091522.
// Unable to convert ' 1064.0 '.
// Unable to convert ' 178.3'.
// Unable to convert ''.
// '92233720368547758071' is out of range.
open System
let convert value =
try
let number = Int64.Parse value
printfn $"Converted '{value}' to {number}."
with
| :? FormatException ->
printfn $"Unable to convert '{value}'."
| :? OverflowException ->
printfn $"'{value}' is out of range."
convert " 179042 "
convert " -2041326 "
convert " +8091522 "
convert " 1064.0 "
convert " 178.3"
convert String.Empty
decimal Int64.MaxValue + 1M
|> string
|> convert
// This example displays the following output to the console:
// Converted ' 179042 ' to 179042.
// Converted ' -2041326 ' to -2041326.
// Converted ' +8091522 ' to 8091522.
// Unable to convert ' 1064.0 '.
// Unable to convert ' 178.3'.
// Unable to convert ''.
// '92233720368547758071' is out of range.
Module ParseInt64
Public Sub Main()
Convert(" 179032 ")
Convert(" -2041326 ")
Convert(" +8091522 ")
Convert(" 1064.0 ")
Convert(" 178.3")
Convert(String.Empty)
Convert((CDec(Int64.MaxValue) + 1).ToString())
End Sub
Private Sub Convert(value As String)
Try
Dim number As Long = Int64.Parse(value)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", value)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range.", value)
End Try
End Sub
End Module
' This example displays the following output to the console:
' Converted ' 179032 ' to 179032.
' Converted ' -2041326 ' to -2041326.
' Converted ' +8091522 ' to 8091522.
' Unable to convert ' 1064.0 '.
' Unable to convert ' 178.3'.
' Unable to convert ''.
' '9223372036854775808' is out of range.
Açıklamalar
s parametresi formun bir sayısını içerir:
[ws] [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. |
| işaret | İsteğe bağlı bir işaret. |
| Basamak | 0 ile 9 arasında bir basamak dizisi. |
s parametresi stil kullanılarak NumberStyles.Integer yorumlanır. Ondalık basamaklara ek olarak, yalnızca baştaki ve sondaki boşlukların başındaki işaretle birlikte kullanılmasına izin verilir. içinde sbulunabilecek stil öğelerini açıkça tanımlamak için veya Int64.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanınInt64.Parse(String, NumberStyles).
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. Başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi Int64.Parse(String, NumberStyles, IFormatProvider) ayrıştırmak için yöntemini kullanın.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.
public:
static long Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<long>::Parse;
public static long Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> int64
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Long
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:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Bir karakter aralığını bir değere ayrıştırıyor.
public:
static long Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<long>::Parse;
public static long Parse(ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> int64
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Long
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:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Belirtilen stildeki bir sayının dize gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür.
public:
static long Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static long Parse(string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> int64
Public Shared Function Parse (s As String, style As NumberStyles) As Long
Parametreler
- s
- String
Dönüştürülecek bir sayı içeren dize.
- style
- NumberStyles
İzin verilen biçimini sgösteren bit düzeyinde bir değer bileşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Integer.
Döndürülenler
içinde belirtilen ssayıya eşdeğer 64 bit imzalı tamsayı.
Özel durumlar
s, null'e eşittir.
style bir NumberStyles değer değildir.
-veya-
styleve HexNumber değerlerinin AllowHexSpecifier birleşimi değildir.
s ile styleuyumlu bir biçimde değil.
s
Int64.MinValue değerinden küçük veya Int64.MaxValue değerinden büyük bir sayıyı temsil eder.
-veya-
style kesirli basamakları destekler ancak s sıfır olmayan kesirli basamaklar içerir.
Örnekler
Aşağıdaki örnek, çeşitli Int64 değerlerin Int64.Parse(String, NumberStyles) dize gösterimlerini ayrıştırmak için yöntemini kullanır. Örneğin geçerli kültürü en-US.
using System;
using System.Globalization;
public class ParseInt32
{
public static void Main()
{
Convert("104.0", NumberStyles.AllowDecimalPoint);
Convert("104.9", NumberStyles.AllowDecimalPoint);
Convert (" 106034", NumberStyles.None);
Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol |
NumberStyles.Number);
Convert(" $17,198,064.00", NumberStyles.AllowCurrencySymbol |
NumberStyles.Number);
Convert("103E06", NumberStyles.AllowExponent);
Convert("1200E-02", NumberStyles.AllowExponent);
Convert("1200E-03", NumberStyles.AllowExponent);
Convert("-1,345,791", NumberStyles.AllowThousands);
Convert("(1,345,791)", NumberStyles.AllowThousands |
NumberStyles.AllowParentheses);
Convert("FFCA00A0", NumberStyles.HexNumber);
Convert("0xFFCA00A0", NumberStyles.HexNumber);
}
private static void Convert(string value, NumberStyles style)
{
try
{
long number = Int64.Parse(value, style);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to convert '{0}'.", value);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is out of range of the Int64 type.", value);
}
}
}
// The example displays the following output to the console:
// Converted '104.0' to 104.
// '104.9' is out of range of the Int64 type.
// Unable to convert ' 106034'.
// ' $17,198,064.42' is out of range of the Int64 type.
// Converted ' $17,198,064.00' to 17198064.
// Converted '103E06' to 103000000.
// Converted '1200E-02' to 12.
// '1200E-03' is out of range of the Int64 type.
// Unable to convert '-1,345,791'.
// Converted '(1,345,791)' to -1345791.
// Converted 'FFCA00A0' to 4291428512.
// Unable to convert '0xFFCA00A0'.
open System
open System.Globalization
let convert value (style: NumberStyles) =
try
let number = Int64.Parse(value, style)
printfn $"converted '{value}' to {number}."
with
| :? FormatException ->
printfn $"Unable to convert '{value}'."
| :? OverflowException ->
printfn $"'{value}' is out of range of the Int64 type."
convert "104.0" NumberStyles.AllowDecimalPoint
convert "104.9" NumberStyles.AllowDecimalPoint
convert " 106034" NumberStyles.None
convert " $17,198,064.42" (NumberStyles.AllowCurrencySymbol ||| NumberStyles.Number)
convert " $17,198,064.00" (NumberStyles.AllowCurrencySymbol ||| NumberStyles.Number)
convert "103E06" NumberStyles.AllowExponent
convert "1200E-02" NumberStyles.AllowExponent
convert "1200E-03" NumberStyles.AllowExponent
convert "-1,345,791" NumberStyles.AllowThousands
convert "(1,345,791)" (NumberStyles.AllowThousands ||| NumberStyles.AllowParentheses)
convert "FFCA00A0" NumberStyles.HexNumber
convert "0xFFCA00A0" NumberStyles.HexNumber
// The example displays the following output to the console:
// converted '104.0' to 104.
// '104.9' is out of range of the Int64 type.
// Unable to convert ' 106034'.
// ' $17,198,064.42' is out of range of the Int64 type.
// converted ' $17,198,064.00' to 17198064.
// converted '103E06' to 103000000.
// converted '1200E-02' to 12.
// '1200E-03' is out of range of the Int64 type.
// Unable to convert '-1,345,791'.
// converted '(1,345,791)' to -1345791.
// converted 'FFCA00A0' to 4291428512.
// Unable to convert '0xFFCA00A0'.
Imports System.Globalization
Module ParseInt64
Public Sub Main()
Convert("104.0", NumberStyles.AllowDecimalPoint)
Convert("104.9", NumberStyles.AllowDecimalPoint)
Convert (" 106034", NumberStyles.None)
Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol Or _
NumberStyles.Number)
Convert(" $17,198,064.00", NumberStyles.AllowCurrencySymbol Or _
NumberStyles.Number)
Convert("103E06", NumberStyles.AllowExponent)
Convert("1200E-02", NumberStyles.AllowExponent)
Convert("1200E-03", NumberStyles.AllowExponent)
Convert("-1,345,791", NumberStyles.AllowThousands)
Convert("(1,345,791)", NumberStyles.AllowThousands Or _
NumberStyles.AllowParentheses)
Convert("FFCA00A0", NumberStyles.HexNumber)
Convert("0xFFCA00A0", NumberStyles.HexNumber)
End Sub
Private Sub Convert(value As String, style As NumberStyles)
Try
Dim number As Long = Int64.Parse(value, style)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", value)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range of the Int64 type.", value)
End Try
End Sub
End Module
' The example displays the following output to the console:
' Converted '104.0' to 104.
' '104.9' is out of range of the Int64 type.
' Unable to convert ' 106034'.
' ' $17,198,064.42' is out of range of the Int64 type.
' Converted ' $17,198,064.00' to 17198064.
' Converted '103E06' to 103000000.
' Converted '1200E-02' to 12.
' '1200E-03' is out of range of the Int64 type.
' Unable to convert '-1,345,791'.
' Converted '(1,345,791)' to -1345791.
' Converted 'FFCA00A0' to 4291428512.
' Unable to convert '0xFFCA00A0'.
Açıklamalar
style parametresi, ayrıştırma işleminin başarılı olması için parametresinde s izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi veya binlik ayırıcı simgesi gibi) tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws] [$] [sign] [rakamlar,]digits[.fractional_digits][e[sign]exponential_digits][ws]
Veya şunu style içeriyorsa AllowHexSpecifier:
[ws]hexdigits[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 fractional_digits exponential_digits |
0 ile 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir. |
| , | 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. Ayrıştırma işleminin başarılı olması için yalnızca 0 rakamı kesirli basamak olarak görünebilir; fractional_digits başka bir basamak içeriyorsa, bir OverflowException oluşturulur. |
| 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. |
| hexdigits | 0'dan f'ye veya 0'dan F'ye kadar onaltılık basamak dizisi. |
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 NumberStyles.None karşılık gelir) türün aralığındaysa Int64 her zaman başarıyla ayrıştırılır. Geri kalan NumberStyles üyelerin çoğu, giriş dizesinde bulunması 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 | Ondalık nokta ( . ) ve kesirli basamak öğeleri. |
| AllowExponent | parametresi üstel s gösterim de kullanabilir. Üstel gösterimde bir sayıyı temsil ediyorsanız s , sonuçta elde edilen sayısal değer sıfır olmayan kesirli basamak içeremez. |
| 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 | Binlik ayırıcısı ( , ) öğ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şında veya sonundaki sws öğesi, öğesinin sbaşında ve ondalık noktası ( . ) simgesiyle işaret eder. parametresi üstel s gösterim de kullanabilir. |
| Number | ws, sign, thousands ayırıcısı ( , ), ve ondalık nokta ( . ) öğeleri. |
| Any | dışındaki s tüm stiller onaltılık bir sayıyı temsil edemez. |
NumberStyles.AllowHexSpecifier Bayrağı kullanılıyorsa, s ön ek olmadan onaltılık bir değer olmalıdır. Örneğin, "C9AF3" başarıyla ayrıştırıyor, ancak "0xC9AF3" ayrıştırmıyor. parametresiyle s birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowLeadingWhite'tirNumberStyles.AllowTrailingWhite. (Numaralandırma, NumberStylesNumberStyles.HexNumberher iki boşluk bayrağını da içeren bileşik bir sayı stili içerir.)
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. Ayrıştırma işlemi için biçimlendirme bilgileri kullanılan kültürü belirtmek için aşırı yüklemeyi çağırın Int64.Parse(String, NumberStyles, IFormatProvider) .
Ayrıca bkz.
Şunlara uygulanır
Parse(String, IFormatProvider)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Belirli bir kültüre özgü biçimdeki bir sayının dize gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür.
public:
static long Parse(System::String ^ s, IFormatProvider ^ provider);
public:
static long Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<long>::Parse;
public static long Parse(string s, IFormatProvider provider);
public static long Parse(string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> int64
Public Shared Function Parse (s As String, provider As IFormatProvider) As Long
Parametreler
- s
- String
Dönüştürülecek bir sayı içeren dize.
- provider
- IFormatProvider
hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
içinde belirtilen ssayıya eşdeğer 64 bit imzalı tamsayı.
Uygulamalar
Özel durumlar
s, null'e eşittir.
s doğru biçimde değil.
s
Int64.MinValue değerinden küçük veya Int64.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 Int64 değere dönüştürmek için yöntemine geçirilirParse(String, IFormatProvider).
protected void OkToLong_Click(object sender, EventArgs e)
{
string locale;
long 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 = Int64.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 OkToLong_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToLong.Click
Dim locale As String
Dim culture As CultureInfo
Dim number As Long
' 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 = Int64.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 Int64 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]digits[ws]
Köşeli ayraç içindeki ([ ve ]) öğeler isteğe bağlıdır ve diğer öğeler aşağıdaki gibidir.
ws İsteğe bağlı bir boşluk.
imza İsteğe bağlı bir işaret.
basamaklar 0 ile 9 arasında bir basamak dizisi.
s parametresi stil kullanılarak NumberStyles.Integer yorumlanır. Ondalık basamaklara ek olarak, yalnızca baştaki ve sondaki boşlukların başındaki işaretle birlikte kullanılmasına izin verilir. içinde sbulunabilecek stil öğelerini açıkça tanımlamak için yöntemini kullanın Int64.Parse(String, NumberStyles, IFormatProvider) .
provider parametresi, veya CultureInfo nesnesi gibi bir IFormatProviderNumberFormatInfo uygulamadır. parametresi, provider biçimi shakkında kültüre özgü bilgiler sağlar. ise providernull, NumberFormatInfo geçerli kültür için kullanılır.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.
public static long Parse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> int64
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Long
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:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Bir sayının belirtilen stil ve kültüre özgü biçimdeki span gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür.
public static long Parse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
public static long Parse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> int64
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Long
Parametreler
- s
- ReadOnlySpan<Char>
Dönüştürülecek sayıyı temsil eden karakterleri içeren bir yayılma alanı.
- style
- NumberStyles
içinde sbulunabilecek stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir Integer.
- provider
- IFormatProvider
IFormatProvider hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir.
Döndürülenler
içinde belirtilen ssayıya eşdeğer 64 bit imzalı tamsayı.
Uygulamalar
Şunlara uygulanır
Parse(String, NumberStyles, IFormatProvider)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür.
public:
static long Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static long Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<long>::Parse;
public static long Parse(string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static long Parse(string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> int64
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Long
Parametreler
- s
- String
Dönüştürülecek bir sayı içeren dize.
- style
- NumberStyles
içinde sbulunabilecek stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir Integer.
- provider
- IFormatProvider
IFormatProvider hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir.
Döndürülenler
içinde belirtilen ssayıya eşdeğer 64 bit imzalı tamsayı.
Uygulamalar
Özel durumlar
s, null'e eşittir.
style bir NumberStyles değer değildir.
-veya-
styleve HexNumber değerlerinin AllowHexSpecifier birleşimi değildir.
s ile styleuyumlu bir biçimde değil.
s
Int64.MinValue değerinden küçük veya Int64.MaxValue değerinden büyük bir sayıyı temsil eder.
-veya-
style kesirli basamakları destekler, ancak s sıfır olmayan kesirli basamaklar içerir.
Örnekler
Aşağıdaki örnek, değerlerin style dize gösterimlerini Int64 ayrıştırmak için çeşitli ve provider parametreleri kullanır. Ayrıca, biçimlendirme bilgileri ayrıştırma işlemi için kullanılan kültüre bağlı olarak aynı dizenin yorumlanabileceği farklı yollardan bazılarını da gösterir.
using System;
using System.Globalization;
public class ParseInt64
{
public static void Main()
{
Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
new CultureInfo("en-GB"));
Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
new CultureInfo("fr-FR"));
Convert("12,000", NumberStyles.Float, new CultureInfo("en-US"));
Convert("12 425,00", NumberStyles.Float | NumberStyles.AllowThousands,
new CultureInfo("sv-SE"));
Convert("12,425.00", NumberStyles.Float | NumberStyles.AllowThousands,
NumberFormatInfo.InvariantInfo);
Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
new CultureInfo("fr-FR"));
Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
new CultureInfo("en-US"));
Convert("631,900", NumberStyles.Integer | NumberStyles.AllowThousands,
new CultureInfo("en-US"));
}
private static void Convert(string value, NumberStyles style,
IFormatProvider provider)
{
try
{
long number = Int64.Parse(value, style, provider);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to convert '{0}'.", value);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is out of range of the Int64 type.", value);
}
}
}
// This example displays the following output to the console:
// Converted '12,000' to 12000.
// Converted '12,000' to 12.
// Unable to convert '12,000'.
// Converted '12 425,00' to 12425.
// Converted '12,425.00' to 12425.
// '631,900' is out of range of the Int64 type.
// Unable to convert '631,900'.
// Converted '631,900' to 631900.
open System
open System.Globalization
let convert (value: string) style provider =
try
let number = Int64.Parse(value, style, provider)
printfn $"Converted '{value}' to {number}."
with
| :? FormatException ->
printfn $"Unable to convert '{value}'."
| :? OverflowException ->
printfn $"'{value}' is out of range of the Int64 type."
convert "12,000" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "en-GB")
convert "12,000" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "fr-FR")
convert "12,000" NumberStyles.Float (CultureInfo "en-US")
convert "12 425,00" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "sv-SE")
convert "12,425.00" (NumberStyles.Float ||| NumberStyles.AllowThousands) NumberFormatInfo.InvariantInfo
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint) (CultureInfo "fr-FR")
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint) (CultureInfo "en-US")
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowThousands) (CultureInfo "en-US")
// This example displays the following output to the console:
// Converted '12,000' to 12000.
// Converted '12,000' to 12.
// Unable to convert '12,000'.
// Converted '12 425,00' to 12425.
// Converted '12,425.00' to 12425.
// '631,900' is out of range of the Int64 type.
// Unable to convert '631,900'.
// Converted '631,900' to 631900.
Imports System.Globalization
Module ParseInt64
Public Sub Main()
Convert("12,000", NumberStyles.Float Or NumberStyles.AllowThousands, _
New CultureInfo("en-GB"))
Convert("12,000", NumberStyles.Float Or NumberStyles.AllowThousands, _
New CultureInfo("fr-FR"))
Convert("12,000", NumberStyles.Float, New CultureInfo("en-US"))
Convert("12 425,00", NumberStyles.Float Or NumberStyles.AllowThousands, _
New CultureInfo("sv-SE"))
Convert("12,425.00", NumberStyles.Float Or NumberStyles.AllowThousands, _
NumberFormatInfo.InvariantInfo)
Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowDecimalPoint, _
New CultureInfo("fr-FR"))
Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowDecimalPoint, _
New CultureInfo("en-US"))
Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowThousands, _
New CultureInfo("en-US"))
End Sub
Private Sub Convert(value As String, style As NumberStyles, _
provider As IFormatProvider)
Try
Dim number As Long = Int64.Parse(value, style, provider)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", value)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range of the Int64 type.", value)
End Try
End Sub
End Module
' This example displays the following output to the console:
' Converted '12,000' to 12000.
' Converted '12,000' to 12.
' Unable to convert '12,000'.
' Converted '12 425,00' to 12425.
' Converted '12,425.00' to 12425.
' '631,900' is out of range of the Int64 type.
' Unable to convert '631,900'.
' Converted '631,900' to 631900.
Açıklamalar
parametresi, style ayrıştırma işleminin başarılı olması için parametresinde s izin verilen stil öğelerini (boşluk veya pozitif işaret gibi) tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws] [$] [sign] [rakamlar,]digits[.fractional_digits][e[sign]exponential_digits][ws]
Veya şunu style içeriyorsa AllowHexSpecifier:
[ws]hexdigits[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, parametresinin yöntemi NumberFormatInfo.CurrencyPositivePattern tarafından döndürülen nesnenin özelliğiyle NumberFormatInfoGetFormat tanımlanırprovider. Bayrağı içeriyorsa 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 veya bayrağın içinde olup olmadığının styleNumberStyles.AllowTrailingSigns sonunda görüntülenebilir.sstyleNumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa s negatif bir değeri style belirtmek için içinde kullanılabilirNumberStyles.AllowParentheses. |
|
Basamak fractional_digits exponential_digits |
0 ile 9 arasında bir basamak dizisi. |
| , | Kültüre özgü binlik ayırıcı simgesi. bayrağını içeriyorsa, tarafından provider belirtilen 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ğını içeriyorsaprovider, tarafından s belirtilen kültürün ondalık nokta simgesi içinde styleNumberStyles.AllowDecimalPoint görüntülenebilir.Ayrıştırma işleminin başarılı olması için yalnızca 0 rakamı kesirli basamak olarak görünebilir; fractional_digits başka bir basamak içeriyorsa, bir OverflowException oluşturulur. |
| 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. |
| hexdigits | 0'dan f'ye veya 0'dan F'ye kadar onaltılık basamak dizisi. |
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 ondalık basamağı olan bir dize (stile NumberStyles.None karşılık gelir) türün aralığındaysa Int64 her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyelerin çoğu, bu 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.
| Bileşik olmayan NumberStyles değerleri | Basamaklara ek olarak s içinde izin verilen öğeler |
|---|---|
| NumberStyles.None | Yalnızca ondalık basamaklar. |
| NumberStyles.AllowDecimalPoint | Ondalık nokta ( . ) ve kesirli basamak öğeleri. Ancak kesirli basamaklar yalnızca bir veya daha fazla 0 basamak içermelidir veya bir OverflowException oluşturulur. |
| NumberStyles.AllowExponent | parametresi üstel s gösterim de kullanabilir. |
| NumberStyles.AllowLeadingWhite | başındaki sws öğesi. |
| NumberStyles.AllowTrailingWhite | sonundaki s öğesi. |
| NumberStyles.AllowLeadingSign | Basamakların önünde bir işaret görünebilir. |
| NumberStyles.AllowTrailingSign | Basamakların ardından bir işaret görünebilir. |
| NumberStyles.AllowParentheses | Sayısal değeri kapsayan parantez biçimindeki sign öğesi. |
| NumberStyles.AllowThousands | Binlik ayırıcısı ( , ) öğesi. |
| NumberStyles.AllowCurrencySymbol | $ öğesi. |
NumberStyles.AllowHexSpecifier Bayrağı kullanılıyorsa, s ön ek olmadan onaltılık bir değer olmalıdır. Örneğin, "C9AF3" başarıyla ayrıştırıyor, ancak "0xC9AF3" ayrıştırmıyor. içinde style bulunabilecek diğer bayraklar yalnızca ve NumberStyles.AllowLeadingWhite'tirNumberStyles.AllowTrailingWhite. (Numaralandırma, NumberStyles her iki boşluk bayrağını da içeren bileşik bir sayı stiline NumberStyles.HexNumbersahiptir.)
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, NumberFormatInfo geçerli kültür için kullanılır.