BigInteger.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 BigInteger dönüştürür.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Parse(String, NumberStyles, IFormatProvider) |
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür. |
| Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Belirtilen karakter salt okunur aralığında bulunan bir sayının gösterimini, belirtilen stilde eşdeğerine BigInteger dönüştürür. |
| Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) | |
| Parse(String, IFormatProvider) |
Belirli bir kültüre özgü biçimdeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür. |
| Parse(ReadOnlySpan<Byte>, IFormatProvider) | |
| 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 BigInteger dönüştürür. |
| Parse(String) |
Bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür. |
Parse(String, NumberStyles, IFormatProvider)
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.
public:
static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(string value, System.Globalization.NumberStyles style, IFormatProvider provider);
public static System.Numerics.BigInteger Parse(string value, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, style As NumberStyles, provider As IFormatProvider) As BigInteger
Parametreler
- value
- String
Dönüştürülecek bir sayı içeren dize.
- style
- NumberStyles
İzin verilen biçimini belirten sabit listesi değerlerinin bit düzeyinde birleşimi value.
- provider
- IFormatProvider
hakkında valuekültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
parametresinde value belirtilen sayıya eşdeğer bir değer.
Uygulamalar
Özel durumlar
style bir NumberStyles değer değildir.
-veya-
styleveya HexNumber bayrağını AllowHexSpecifier başka bir değerle birlikte içerir.
value, null'e eşittir.
value tarafından stylebelirtilen giriş deseniyle uyumlu değildir.
Örnekler
Aşağıdaki örnek, ve provider parametreleri için Parse(String, NumberStyles, IFormatProvider) çeşitli değer bileşimlerini kullanarak yöntemine style birkaç çağrı yapar.
// Call parse with default values of style and provider
Console.WriteLine(BigInteger.Parse(" -300 ",
NumberStyles.Integer, CultureInfo.CurrentCulture));
// Call parse with default values of style and provider supporting tilde as negative sign
Console.WriteLine(BigInteger.Parse(" ~300 ",
NumberStyles.Integer, new BigIntegerFormatProvider()));
// Call parse with only AllowLeadingWhite and AllowTrailingWhite
// Exception thrown because of presence of negative sign
try
{
Console.WriteLine(BigInteger.Parse(" ~300 ",
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite,
new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
Console.WriteLine("{0}: \n {1}", e.GetType().Name, e.Message);
}
// Call parse with only AllowHexSpecifier
// Exception thrown because of presence of negative sign
try
{
Console.WriteLine(BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier,
new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
Console.WriteLine("{0}: \n {1}", e.GetType().Name, e.Message);
}
// Call parse with only NumberStyles.None
// Exception thrown because of presence of white space and sign
try
{
Console.WriteLine(BigInteger.Parse(" -300 ", NumberStyles.None,
new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
Console.WriteLine("{0}: \n {1}", e.GetType().Name, e.Message);
}
// The example displays the followingoutput:
// -300
// -300
// FormatException:
// The value could not be parsed.
// FormatException:
// The value could not be parsed.
// FormatException:
// The value could not be parsed.
// Call parse with default values of style and provider
printfn $"""{BigInteger.Parse(" -300 ", NumberStyles.Integer, CultureInfo.CurrentCulture)}"""
// Call parse with default values of style and provider supporting tilde as negative sign
printfn $"""{BigInteger.Parse(" ~300 ", NumberStyles.Integer, new BigIntegerFormatProvider())}"""
// Call parse with only AllowLeadingWhite and AllowTrailingWhite
// Exception thrown because of presence of negative sign
try
printfn
$"""{BigInteger.Parse(
" ~300 ",
NumberStyles.AllowLeadingWhite ||| NumberStyles.AllowTrailingWhite,
new BigIntegerFormatProvider()
)}"""
with :? FormatException as e ->
printfn $"{e.GetType().Name}: \n {e.Message}"
// Call parse with only AllowHexSpecifier
// Exception thrown because of presence of negative sign
try
printfn $"""{BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, new BigIntegerFormatProvider())}"""
with :? FormatException as e ->
printfn $"{e.GetType().Name}: \n {e.Message}"
// Call parse with only NumberStyles.None
// Exception thrown because of presence of white space and sign
try
printfn $"""{BigInteger.Parse(" -300 ", NumberStyles.None, new BigIntegerFormatProvider())}"""
with :? FormatException as e ->
printfn $"{e.GetType().Name}: \n {e.Message}"
// The example displays the followingoutput:
// -300
// -300
// FormatException:
// The value could not be parsed.
// FormatException:
// The value could not be parsed.
// FormatException:
// The value could not be parsed.
' Call parse with default values of style and provider
Console.WriteLine(BigInteger.Parse(" -300 ", _
NumberStyles.Integer, CultureInfo.CurrentCulture))
' Call parse with default values of style and provider supporting tilde as negative sign
Console.WriteLine(BigInteger.Parse(" ~300 ", _
NumberStyles.Integer, New BigIntegerFormatProvider()))
' Call parse with only AllowLeadingWhite and AllowTrailingWhite
' Exception thrown because of presence of negative sign
Try
Console.WriteLIne(BigInteger.Parse(" ~300 ", _
NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite, _
New BigIntegerFormatProvider()))
Catch e As FormatException
Console.WriteLine("{0}: {1} {2}", e.GetType().Name, vbCrLf, e.Message)
End Try
' Call parse with only AllowHexSpecifier
' Exception thrown because of presence of negative sign
Try
Console.WriteLIne(BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, _
New BigIntegerFormatProvider()))
Catch e As FormatException
Console.WriteLine("{0}: {1} {2}", e.GetType().Name, vbCrLf, e.Message)
End Try
' Call parse with only NumberStyles.None
' Exception thrown because of presence of white space and sign
Try
Console.WriteLIne(BigInteger.Parse(" -300 ", NumberStyles.None, _
New BigIntegerFormatProvider()))
Catch e As FormatException
Console.WriteLine("{0}: {1} {2}", e.GetType().Name, vbCrLf, e.Message)
End Try
' The example displays the following output:
' -300
' -300
' FormatException:
' The value could not be parsed.
' FormatException:
' The value could not be parsed.
' FormatException:
' The value could not be parsed.
Yöntemine Parse(String, NumberStyles, IFormatProvider) yapılan tek tek çağrıların bir sayısı, negatif işareti olarak bir tilde (~) tanımlayan aşağıdaki BigIntegerFormatProvider sınıfın bir örneğini geçirir.
public class BigIntegerFormatProvider : IFormatProvider
{
public object GetFormat(Type formatType)
{
if (formatType == typeof(NumberFormatInfo))
{
NumberFormatInfo numberFormat = new NumberFormatInfo();
numberFormat.NegativeSign = "~";
return numberFormat;
}
else
{
return null;
}
}
}
type BigIntegerFormatProvider() =
interface IFormatProvider with
member _.GetFormat(formatType: Type) =
if formatType = typeof<NumberFormatInfo> then
let numberFormat = NumberFormatInfo()
numberFormat.NegativeSign <- "~"
numberFormat
else
null
Public Class BigIntegerFormatProvider : Implements IFormatProvider
Public Function GetFormat(formatType As Type) As Object _
Implements IFormatProvider.GetFormat
If formatType Is GetType(NumberFormatInfo) Then
Dim numberFormat As New NumberFormatInfo
numberFormat.NegativeSign = "~"
Return numberFormat
Else
Return Nothing
End If
End Function
End Class
Açıklamalar
style parametresi, ayrıştırma işleminin başarılı olması için parametrede value izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi, grup ayırıcı simgesi veya ondalık ayırıcı simgesi gibi) tanımlar.
styles sabit listesindeki bit bayraklarının NumberStyles birleşimi olmalıdır.
style parametresi, tarafından temsil value edilen sayı sistemi (ondalık veya onaltılık) yalnızca çalışma zamanında bilindiğinde veya içinde boşluk veya işaret simgesine izin vermek istemediğinizde, onaltılık değerin dize gösterimini içerdiğinde valuebu yöntem aşırı yüklemesini kullanışlı value hale getirir.
değerine stylevalue bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
içeriyorsa styleNumberStyles.AllowHexSpecifiervalue, parametresi aşağıdaki öğeleri içerebilir:
[ws]hexdigits[ws]
Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
| Öğe | Description |
|---|---|
| Ws | İsteğe bağlı boşluk. Bayrağı içeriyorsa başında boşluk görünebilir valuestyle ve bayrağın dahil olup olmadığının valuestyleNumberStyles.AllowTrailingWhite sonunda görüntülenebilir.NumberStyles.AllowLeadingWhite |
| $ | Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresi tarafından NumberFormatInfo.CurrencyNegativePattern belirtilen kültürün ve NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından provider tanımlanır. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde valuestyle görüntülenebilir. |
| işaret | İsteğe bağlı bir işaret. bayrağını içeriyorsaNumberStyles.AllowLeadingSign, işaretinin stylevalue başında ve bayrağın dahil NumberStyles.AllowTrailingSign olup olmadığının valuestyle sonunda görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue. |
|
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ü grup ayırıcı simgesi. bayrağını içeriyorsaNumberStyles.AllowThousands, tarafından provider belirtilen kültürün grup ayırıcı simgesi içinde valuestyle görüntülenebilir. |
| . | Kültüre özgü ondalık nokta simgesi. tarafından belirlenen provider kültürün ondalık noktası simgesi, bayrağı içeriyorsa NumberStyles.AllowDecimalPoint içinde valuestyle görünebilir. 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 FormatException oluşturulur. |
| E | Değerin üstel (bilimsel) gösterimde temsil olduğunu gösteren "e" veya "E" karakteri. parametresi, value 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. |
Uyarı
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) her zaman başarıyla ayrıştırılıyor. Geri kalan NumberStyles üyelerin çoğu, giriş dizesinde mevcut olabilecek ancak mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde valuebulunabilecek öğeleri nasıl etkilediğini gösterir.
| NumberStyles değeri | Basamaklara ek olarak değerde izin verilen öğeler |
|---|---|
| None | Yalnızca rakamlar öğesi. |
| AllowDecimalPoint | Ondalık nokta (.) ve kesirli basamak öğeleri. |
| AllowExponent | Üstel gösterimi gösteren "e" veya "E" karakteri. exponential_digits ile birlikte. |
| AllowLeadingWhite | başındaki valuews öğesi. |
| AllowTrailingWhite | sonundaki valuews öğesi. |
| AllowLeadingSign | başındaki valuesign öğesi. |
| AllowTrailingSign | sonundaki valuesign öğesi. |
| AllowParentheses | Sayısal değeri kapsayan parantez biçimindeki sign öğesi. |
| AllowThousands | Grup ayırıcı (,) öğesi. |
| AllowCurrencySymbol | Para birimi ($) öğesi. |
| Currency | Tüm öğeler. Ancak, value üstel gösterimde onaltılık bir sayıyı veya sayıyı temsil edemez. |
| Float | başında veya sonundaki valuews öğesi, öğesinin valuebaşında ve ondalık nokta (.) simgesiyle işaret eder. parametresi üstel value gösterim de kullanabilir. |
| Number |
ws, sign, grup ayırıcısı (,) ve ondalık ayırıcı (.) öğeleri. |
| Any | Tüm öğeler. Ancak, value onaltılık bir sayıyı temsil edemez. |
Önemli
yöntemi tarafından ToString çıktısı alınan bir BigInteger değerin dize gösterimine gidiş dönüş yapmak için yöntemini kullanırsanızParse, değerin BigInteger.ToString(String) dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız gerekir. Aksi takdirde, dize gösterimi özgün değerin BigInteger yalnızca en önemli 50 basamağını korur ve değeri geri yüklemek BigInteger için yöntemini kullandığınızda Parse veriler kaybolabilir.
içinde belirli stil öğelerinin NumberStyles.AllowHexSpecifiervaluebulunmasına izin veren ancak gerektirmeyen diğer NumberStyles değerlerden farklı olarak, stil değeri içindeki tek tek sayısal karakterlerin value her zaman onaltılık karakterler olarak yorumlandığı anlamına gelir. Geçerli onaltılık karakterler 0-9, A-F ve a-f şeklindedir. parametresiyle style birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStylesHexNumberher iki boşluk bayrağını da içeren bileşik bir sayı stili içerir.)
Uyarı
Onaltılık bir sayının dize gösterimi isevalue, bundan önce onu onaltılık sayı olarak ayıran herhangi bir süsleme (veya &hgibi0x) olamaz. Bu, dönüştürmenin başarısız olmasına neden olur.
Onaltılık bir dizeysevalue, yöntemi, ilk iki onaltılık basamak değerinden Parse(String, NumberStyles) büyük veya buna eşitse0x80, ikinin tamamlayıcı gösterimini kullanarak depolanmış negatif bir sayı olarak yorumlarvalue. Başka bir deyişle yöntemi, içindeki ilk baytın value en yüksek sıralı bitini işaret biti olarak yorumlar. Onaltılık bir dizenin doğru bir pozitif sayı olarak yorumlandığından emin olmak için içindeki ilk basamak value sıfır değerine sahip olmalıdır. Örneğin, yöntem negatif bir değer olarak yorumlar 0x80 , ancak ya da 0x0800x0080 pozitif bir değer olarak yorumlar. Aşağıdaki örnekte, negatif ve pozitif değerleri temsil eden onaltılık dizeler arasındaki fark gösterilmektedir.
using System;
using System.Globalization;
using System.Numerics;
public class Example
{
public static void Main()
{
string[] hexStrings = { "80", "E293", "F9A2FF", "FFFFFFFF",
"080", "0E293", "0F9A2FF", "0FFFFFFFF",
"0080", "00E293", "00F9A2FF", "00FFFFFFFF" };
foreach (string hexString in hexStrings)
{
BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
}
}
}
// The example displays the following output:
// Converted 0x80 to -128.
// Converted 0xE293 to -7533.
// Converted 0xF9A2FF to -417025.
// Converted 0xFFFFFFFF to -1.
// Converted 0x080 to 128.
// Converted 0x0E293 to 58003.
// Converted 0x0F9A2FF to 16360191.
// Converted 0x0FFFFFFFF to 4294967295.
// Converted 0x0080 to 128.
// Converted 0x00E293 to 58003.
// Converted 0x00F9A2FF to 16360191.
// Converted 0x00FFFFFFFF to 4294967295.
open System.Globalization
open System.Numerics
let hexStrings =
[| "80"
"E293"
"F9A2FF"
"FFFFFFFF"
"080"
"0E293"
"0F9A2FF"
"0FFFFFFFF"
"0080"
"00E293"
"00F9A2FF"
"00FFFFFFFF" |]
for hexString in hexStrings do
let number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
printfn $"Converted 0x{hexString} to {number:N0}."
// The example displays the following output:
// Converted 0x80 to -128.
// Converted 0xE293 to -7533.
// Converted 0xF9A2FF to -417025.
// Converted 0xFFFFFFFF to -1.
// Converted 0x080 to 128.
// Converted 0x0E293 to 58003.
// Converted 0x0F9A2FF to 16360191.
// Converted 0x0FFFFFFFF to 4294967295.
// Converted 0x0080 to 128.
// Converted 0x00E293 to 58003.
// Converted 0x00F9A2FF to 16360191.
// Converted 0x00FFFFFFFF to 4294967295.
Imports System.Globalization
Imports System.Numerics
Module Example
Public Sub Main()
Dim hexStrings() As String = { "80", "E293", "F9A2FF", "FFFFFFFF",
"080", "0E293", "0F9A2FF", "0FFFFFFFF",
"0080", "00E293", "00F9A2FF", "00FFFFFFFF" }
For Each hexString As String In hexStrings
Dim number As BigInteger = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
Next
End Sub
End Module
' The example displays the following output:
' Converted 0x80 to -128.
' Converted 0xE293 to -7533.
' Converted 0xF9A2FF to -417025.
' Converted 0xFFFFFFFF to -1.
' Converted 0x080 to 128.
' Converted 0x0E293 to 58003.
' Converted 0x0F9A2FF to 16360191.
' Converted 0x0FFFFFFFF to 4294967295.
' Converted 0x0080 to 128.
' Converted 0x00E293 to 58003.
' Converted 0x00F9A2FF to 16360191.
' Converted 0x00FFFFFFFF to 4294967295.
provider parametresi bir IFormatProvider uygulamadır.
GetFormat yöntemi, biçimi valuehakkında kültüre özgü bilgiler sağlayan bir NumberFormatInfo nesnesi döndürür. Genellikle aşağıdakilerden provider herhangi biri olabilir:
CultureInfo Sayısal biçimlendirme bilgileri sağlayan kültürü temsil eden nesne. Yöntemi GetFormat , sayısal biçimlendirme bilgileri sağlayan nesneyi döndürür NumberFormatInfo .
NumberFormatInfo Biçimlendirme bilgileri sağlayan bir nesne. (Uygulaması GetFormat yalnızca kendisini döndürür.)
Biçimlendirme bilgileri sağlayan nesnesinin örneğini oluşturmak ve döndürmek NumberFormatInfo için yöntemini uygulayan IFormatProvider ve kullanan GetFormat özel bir nesne.
ise providernull, NumberFormatInfo geçerli kültürün nesnesi kullanılır.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
Belirtilen karakter salt okunur aralığında bulunan bir sayının gösterimini, belirtilen stilde eşdeğerine BigInteger dönüştürür.
public static System.Numerics.BigInteger Parse(ReadOnlySpan<char> value, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
public static System.Numerics.BigInteger Parse(ReadOnlySpan<char> value, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As BigInteger
Parametreler
- value
- ReadOnlySpan<Char>
Dönüştürülecek sayıyı içeren karakterlerin salt okunur yayılma alanı.
- style
- NumberStyles
İzin verilen biçimini belirten sabit listesi değerlerinin bit düzeyinde birleşimi value.
- provider
- IFormatProvider
hakkında valuekültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
parametresinde value belirtilen sayıya eşdeğer bir değer.
Uygulamalar
Özel durumlar
style bir NumberStyles değer değildir.
-veya-
styleveya HexNumber bayrağını AllowHexSpecifier başka bir değerle birlikte içerir.
value, null'e eşittir.
value tarafından stylebelirtilen giriş deseniyle uyumlu değildir.
Açıklamalar
style parametresi, ayrıştırma işleminin başarılı olması için parametrede value izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi, grup ayırıcı simgesi veya ondalık ayırıcı simgesi gibi) tanımlar.
styles sabit listesindeki bit bayraklarının NumberStyles birleşimi olmalıdır.
style parametresi, tarafından temsil value edilen sayı sistemi (ondalık veya onaltılık) yalnızca çalışma zamanında bilindiğinde veya içinde boşluk veya işaret simgesine izin vermek istemediğinizde onaltılık değerin gösterimini içerdiğinde valuebu yöntem aşırı yüklemesini kullanışlı value hale getirir.
değerine stylevalue bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
içeriyorsa styleNumberStyles.AllowHexSpecifiervalue, parametresi aşağıdaki öğeleri içerebilir:
[ws]hexdigits[ws]
Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
| Öğe | Description |
|---|---|
| Ws | İsteğe bağlı boşluk. Bayrağı içeriyorsa başında boşluk görünebilir valuestyle ve bayrağın dahil olup olmadığının valuestyleNumberStyles.AllowTrailingWhite sonunda görüntülenebilir.NumberStyles.AllowLeadingWhite |
| $ | Kültüre özgü para birimi simgesi. içindeki value konumu, parametresi tarafından NumberFormatInfo.CurrencyNegativePattern belirtilen kültürün ve NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından provider tanımlanır. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde valuestyle görüntülenebilir. |
| işaret | İsteğe bağlı bir işaret. bayrağını içeriyorsaNumberStyles.AllowLeadingSign, işaretinin stylevalue başında ve bayrağın dahil NumberStyles.AllowTrailingSign olup olmadığının valuestyle sonunda görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue. |
|
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ü grup ayırıcı simgesi. bayrağını içeriyorsaNumberStyles.AllowThousands, tarafından provider belirtilen kültürün grup ayırıcı simgesi içinde valuestyle görüntülenebilir. |
| . | Kültüre özgü ondalık nokta simgesi. tarafından belirlenen provider kültürün ondalık noktası simgesi, bayrağı içeriyorsa NumberStyles.AllowDecimalPoint içinde valuestyle görünebilir. 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 FormatException oluşturulur. |
| E | Değerin üstel (bilimsel) gösterimde temsil olduğunu gösteren "e" veya "E" karakteri. parametresi, value 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. |
Uyarı
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.
value Yalnızca basamak içeren bir (stile NumberStyles.None karşılık gelen) her zaman başarıyla ayrıştırılıyor. Kalan NumberStyles üyelerin çoğu, içinde mevcut olabilecek ancak mevcut valueolması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde valuebulunabilecek öğeleri nasıl etkilediğini gösterir.
| NumberStyles değeri | Basamaklara ek olarak değerde izin verilen öğeler |
|---|---|
| None | Yalnızca rakamlar öğesi. |
| AllowDecimalPoint | Ondalık nokta (.) ve kesirli basamak öğeleri. |
| AllowExponent | Üstel gösterimi gösteren "e" veya "E" karakteri. exponential_digits ile birlikte. |
| AllowLeadingWhite | başındaki valuews öğesi. |
| AllowTrailingWhite | sonundaki valuews öğesi. |
| AllowLeadingSign | başındaki valuesign öğesi. |
| AllowTrailingSign | sonundaki valuesign öğesi. |
| AllowParentheses | Sayısal değeri kapsayan parantez biçimindeki sign öğesi. |
| AllowThousands | Grup ayırıcı (,) öğesi. |
| AllowCurrencySymbol | Para birimi ($) öğesi. |
| Currency | Tüm öğeler. Ancak, value üstel gösterimde onaltılık bir sayıyı veya sayıyı temsil edemez. |
| Float | başında veya sonundaki valuews öğesi, öğesinin valuebaşında ve ondalık nokta (.) simgesiyle işaret eder. parametresi üstel value gösterim de kullanabilir. |
| Number |
ws, sign, grup ayırıcısı (,) ve ondalık ayırıcı (.) öğeleri. |
| Any | Tüm öğeler. Ancak, value onaltılık bir sayıyı temsil edemez. |
içinde belirli stil öğelerinin NumberStyles.AllowHexSpecifiervaluebulunmasına izin veren ancak gerektirmeyen diğer NumberStyles değerlerden farklı olarak, stil değeri içindeki tek tek sayısal karakterlerin value her zaman onaltılık karakterler olarak yorumlandığı anlamına gelir. Geçerli onaltılık karakterler 0-9, A-F ve a-f şeklindedir. parametresiyle style birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStylesHexNumberher iki boşluk bayrağını da içeren bileşik bir sayı stili içerir.)
provider parametresi bir IFormatProvider uygulamadır.
GetFormat yöntemi, biçimi valuehakkında kültüre özgü bilgiler sağlayan bir NumberFormatInfo nesnesi döndürür. Genellikle aşağıdakilerden provider herhangi biri olabilir:
CultureInfo Sayısal biçimlendirme bilgileri sağlayan kültürü temsil eden nesne. Yöntemi GetFormat , sayısal biçimlendirme bilgileri sağlayan nesneyi döndürür NumberFormatInfo .
NumberFormatInfo Biçimlendirme bilgileri sağlayan bir nesne. (Uygulaması GetFormat yalnızca kendisini döndürür.)
Biçimlendirme bilgileri sağlayan nesnesinin örneğini oluşturmak ve döndürmek NumberFormatInfo için yöntemini uygulayan IFormatProvider ve kullanan GetFormat özel bir nesne.
ise providernull, NumberFormatInfo geçerli kültürün nesnesi kullanılır.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
public static System.Numerics.BigInteger Parse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As BigInteger
Parametreler
- utf8Text
- ReadOnlySpan<Byte>
- style
- NumberStyles
- provider
- IFormatProvider
Döndürülenler
Uygulamalar
Şunlara uygulanır
Parse(String, IFormatProvider)
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
Belirli bir kültüre özgü biçimdeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.
public:
static System::Numerics::BigInteger Parse(System::String ^ value, IFormatProvider ^ provider);
public:
static System::Numerics::BigInteger Parse(System::String ^ value, IFormatProvider ^ provider) = IParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(string value, IFormatProvider provider);
public static System.Numerics.BigInteger Parse(string value, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, provider As IFormatProvider) As BigInteger
Parametreler
- value
- String
Dönüştürülecek bir sayı içeren dize.
- provider
- IFormatProvider
hakkında valuekültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
Döndürülenler
parametresinde value belirtilen sayıya eşdeğer bir değer.
Uygulamalar
Özel durumlar
value, null'e eşittir.
value doğru biçimde değil.
Örnekler
Aşağıdaki örneklerde, tilde değerini (~) biçimlendirme BigInteger değerleri için negatif bir işaret olarak tanımlamanın iki yolu gösterilmektedir. Değerleri özgün dizelerle aynı biçimde görüntülemek BigInteger için kodunuzun yöntemini çağırması BigInteger.ToString(IFormatProvider) ve biçimlendirme bilgileri sağlayan nesneyi geçirmesi NumberFormatInfo gerektiğini unutmayın.
İlk örnek, biçimlendirme bilgileri sağlayan nesneyi döndürmek NumberFormatInfo için yöntemini uygulayan IFormatProvider ve kullanan GetFormat bir sınıfı tanımlar.
public class BigIntegerFormatProvider : IFormatProvider
{
public object GetFormat(Type formatType)
{
if (formatType == typeof(NumberFormatInfo))
{
NumberFormatInfo numberFormat = new NumberFormatInfo();
numberFormat.NegativeSign = "~";
return numberFormat;
}
else
{
return null;
}
}
}
type BigIntegerFormatProvider() =
interface IFormatProvider with
member _.GetFormat(formatType: Type) =
if formatType = typeof<NumberFormatInfo> then
let numberFormat = NumberFormatInfo()
numberFormat.NegativeSign <- "~"
numberFormat
else
null
Public Class BigIntegerFormatProvider : Implements IFormatProvider
Public Function GetFormat(formatType As Type) As Object _
Implements IFormatProvider.GetFormat
If formatType Is GetType(NumberFormatInfo) Then
Dim numberFormat As New NumberFormatInfo
numberFormat.NegativeSign = "~"
Return numberFormat
Else
Return Nothing
End If
End Function
End Class
BigInteger Daha sonra aşağıdaki kodla bir nesne örneği oluşturulabilir:
BigInteger number = BigInteger.Parse("~6354129876", new BigIntegerFormatProvider());
// Display value using same formatting information
Console.WriteLine(number.ToString(new BigIntegerFormatProvider()));
// Display value using formatting of current culture
Console.WriteLine(number);
let number = BigInteger.Parse("~6354129876", BigIntegerFormatProvider())
printfn $"{number.ToString(BigIntegerFormatProvider())}"
printfn $"{number}"
Dim number As BigInteger = BigInteger.Parse("~6354129876", New BigIntegerFormatProvider)
' Display value using same formatting information
Console.WriteLine(number.ToString(New BigIntegerFormatProvider))
' Display value using formatting of current culture
Console.WriteLine(number)
İkinci örnek daha basittir. Parametreye NumberFormatInfo biçimlendirme bilgileri provider sağlayan nesneyi geçirir.
NumberFormatInfo fmt = new NumberFormatInfo();
fmt.NegativeSign = "~";
BigInteger number = BigInteger.Parse("~6354129876", fmt);
// Display value using same formatting information
Console.WriteLine(number.ToString(fmt));
// Display value using formatting of current culture
Console.WriteLine(number);
let fmt = NumberFormatInfo()
fmt.NegativeSign <- "~"
let number = BigInteger.Parse("~6354129876", fmt)
printfn $"{number.ToString fmt}"
printfn $"{number}"
Dim fmt As New NumberFormatInfo()
fmt.NegativeSign = "~"
Dim number As BigInteger = BigInteger.Parse("~6354129876", fmt)
' Display value using same formatting information
Console.WriteLine(number.ToString(fmt))
' Display value using formatting of current culture
Console.WriteLine(number)
Açıklamalar
parametresi, value aşağıdaki biçimdeki bir sayının dize gösterimi olmalıdır:
[ws][sign]rakamlar[ws]
Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
| Öğe | Description |
|---|---|
| Ws | İsteğe bağlı boşluk. |
| işaret | İsteğe bağlı bir işaret. Geçerli işaret karakterleri, nesnenin NumberFormatInfo.NegativeSign yöntemi tarafından döndürülen nesnenin providerGetFormat ve NumberFormatInfo.PositiveSign özellikleri NumberFormatInfo tarafından belirlenir. |
| Basamak | 0 ile 9 arasında bir basamak dizisi. Baştaki sıfırlar yoksayılır. |
Uyarı
parametresi tarafından value belirtilen dize, stil kullanılarak NumberStyles.Integer yorumlanır. Hiçbir grup ayırıcısı veya ondalık ayırıcı içeremez ve ondalık bölümü olamaz.
Önemli
yöntemi tarafından ToString çıktısı alınan bir BigInteger değerin dize gösterimine gidiş dönüş yapmak için yöntemini kullanırsanızParse, değerin BigInteger.ToString(String) dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız gerekir. Aksi takdirde, dize gösterimi özgün değerin BigInteger yalnızca en önemli 50 basamağını korur ve değeri geri yüklemek BigInteger için yöntemini kullandığınızda Parse veriler kaybolabilir.
provider parametresi, yöntemi kültüre özgü biçimlendirme bilgileri sağlayan bir nesne döndüren bir IFormatProviderNumberFormatInfo uygulamadırGetFormat.
Parse(String, IFormatProvider) yöntemi çağrıldığında, parametresinin providerGetFormat yöntemini çağırır ve türü temsil NumberFormatInfo eden bir Type nesne geçirir. Yöntemi GetFormat daha sonra parametresinin NumberFormatInfo biçimi value hakkında bilgi sağlayan nesneyi döndürür. Ayrıştırma işlemine provider özel biçimlendirme bilgileri sağlamak için parametresini kullanmanın üç yolu vardır:
Biçimlendirme bilgileri sağlayan kültürü temsil eden bir CultureInfo nesne geçirebilirsiniz. yöntemi GetFormat , bu kültür için sayısal biçimlendirme bilgileri sağlayan nesneyi döndürür NumberFormatInfo .
Sayısal biçimlendirme bilgileri sağlayan gerçek NumberFormatInfo nesneyi geçirebilirsiniz. (Uygulaması GetFormat yalnızca kendisini döndürür.)
uygulayan IFormatProviderözel bir nesne geçirebilirsiniz. Yöntemi GetFormat , biçimlendirme bilgileri sağlayan nesnesinin örneğini NumberFormatInfo oluşturur ve döndürür.
ise providernull, biçimlendirmesi value geçerli kültürün NumberFormatInfo nesnesine göre yorumlanır.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, IFormatProvider)
public:
static System::Numerics::BigInteger Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As BigInteger
Parametreler
- utf8Text
- ReadOnlySpan<Byte>
- provider
- IFormatProvider
Döndürülenler
Uygulamalar
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
Bir karakter aralığını bir değere ayrıştırıyor.
public:
static System::Numerics::BigInteger Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As BigInteger
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:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
Belirtilen stildeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.
public:
static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style);
public static System.Numerics.BigInteger Parse(string value, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, style As NumberStyles) As BigInteger
Parametreler
- value
- String
Dönüştürülecek bir sayı içeren dize.
- style
- NumberStyles
İzin verilen biçimini belirten sabit listesi değerlerinin bit düzeyinde birleşimi value.
Döndürülenler
parametresinde value belirtilen sayıya eşdeğer bir değer.
Özel durumlar
style bir NumberStyles değer değildir.
-veya-
styleveya HexNumber bayrağını AllowHexSpecifier başka bir değerle birlikte içerir.
value, null'e eşittir.
value tarafından NumberStylesbelirtilen giriş deseniyle uyumlu değildir.
Örnekler
Aşağıdaki örnek, parametresi için Parse(String, NumberStyles) çeşitli olası değerlerle yöntemine yapılan style çağrıları gösterir. Bir dizeyi onaltılık değer olarak yorumlamayı ve boşluklara ve işaret simgelerine izin vermemeyi gösterir.
BigInteger number;
// Method should succeed (white space and sign allowed)
number = BigInteger.Parse(" -68054 ", NumberStyles.Integer);
Console.WriteLine(number);
// Method should succeed (string interpreted as hexadecimal)
number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier);
Console.WriteLine(number);
// Method call should fail: sign not allowed
try
{
number = BigInteger.Parse(" -68054 ", NumberStyles.AllowLeadingWhite
| NumberStyles.AllowTrailingWhite);
Console.WriteLine(number);
}
catch (FormatException e)
{
Console.WriteLine(e.Message);
}
// Method call should fail: white space not allowed
try
{
number = BigInteger.Parse(" 68054 ", NumberStyles.AllowLeadingSign);
Console.WriteLine(number);
}
catch (FormatException e)
{
Console.WriteLine(e.Message);
}
//
// The method produces the following output:
//
// -68054
// 426068
// Input string was not in a correct format.
// Input string was not in a correct format.
let number = BigInteger.Parse(" -68054 ", NumberStyles.Integer)
printfn $"{number}"
let number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier)
printfn $"{number}"
try
let number =
BigInteger.Parse(" -68054 ", NumberStyles.AllowLeadingWhite ||| NumberStyles.AllowTrailingWhite)
printfn $"{number}"
with :? FormatException as e ->
printfn $"{e.Message}"
try
let number = BigInteger.Parse(" 68054 ", NumberStyles.AllowLeadingSign)
printfn $"{number}"
with :? FormatException as e ->
printfn $"{e.Message}"
// The method produces the following output:
// -68054
// 426068
// Input string was not in a correct format.
// Input string was not in a correct format.
Dim number As BigInteger
' Method should succeed (white space and sign allowed)
number = BigInteger.Parse(" -68054 ", NumberStyles.Integer)
Console.WriteLine(number)
' Method should succeed (string interpreted as hexadecimal)
number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier)
Console.WriteLine(number)
' Method call should fail: sign not allowed
Try
number = BigInteger.Parse(" -68054 ", NumberStyles.AllowLeadingWhite _
Or NumberStyles.AllowTrailingWhite)
Console.WriteLine(number)
Catch e As FormatException
Console.WriteLine(e.Message)
End Try
' Method call should fail: white space not allowed
Try
number = BigInteger.Parse(" 68054 ", NumberStyles.AllowLeadingSign)
Console.WriteLine(number)
Catch e As FormatException
Console.WriteLine(e.Message)
End Try
'
' The method produces the following output:
'
' -68054
' 426068
' Input string was not in a correct format.
' Input string was not in a correct format.
Açıklamalar
style parametresi, ayrıştırma işleminin başarılı olması için parametrede value izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi, grup ayırıcı simgesi veya ondalık ayırıcı simgesi gibi) tanımlar.
styles sabit listesindeki bit bayraklarının NumberStyles birleşimi olmalıdır.
style parametresi, tarafından temsil value edilen sayı sistemi (ondalık veya onaltılık) yalnızca çalışma zamanında bilindiğinde veya içinde boşluk veya işaret simgesine izin vermek istemediğinizde, onaltılık değerin dize gösterimini içerdiğinde valuebu yöntem aşırı yüklemesini kullanışlı value hale getirir.
değerine stylevalue bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
içeriyorsa styleNumberStyles.AllowHexSpecifiervalue, parametresi aşağıdaki öğeleri içerebilir:
[ws]hexdigits[ws]
Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
| Öğe | Description |
|---|---|
| Ws | İsteğe bağlı boşluk. Bayrağı içeriyorsa başında boşluk görünebilir valuestyle ve bayrağın dahil olup olmadığının valuestyleNumberStyles.AllowTrailingWhite sonunda 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 valuestyle görüntülenebilir. |
| işaret | İsteğe bağlı bir işaret. bayrağını içeriyorsaNumberStyles.AllowLeadingSign, işaretinin stylevalue başında ve bayrağın dahil NumberStyles.AllowTrailingSign olup olmadığının valuestyle sonunda görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue. |
|
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ü grup ayırıcı simgesi. Bayrağı içeriyorsa, geçerli kültürün grup ayırıcısı NumberStyles.AllowThousands içinde valuestyle görüntülenebilir. |
| . | Kültüre özgü ondalık nokta simgesi. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowDecimalPoint ondalık noktası simgesi içinde valuestyle 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 FormatException oluşturulur. |
| E | Değerin üstel (bilimsel) gösterimde temsil olduğunu gösteren "e" veya "E" karakteri. parametresi, value 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. |
Uyarı
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) her zaman başarıyla ayrıştırılıyor. Geri kalan NumberStyles üyelerin çoğu, giriş dizesinde mevcut olabilecek ancak mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde valuebulunabilecek öğeleri nasıl etkilediğini gösterir.
NumberStyles değer |
Basamaklara ek olarak izin verilen value öğeler |
|---|---|
| None | Yalnızca rakamlar öğesi. |
| AllowDecimalPoint | Ondalık nokta (.) ve kesirli basamak öğeleri. |
| AllowExponent | Exponential_digits ile birlikte üstel gösterimi gösteren "e" veya "E" karakteri. |
| AllowLeadingWhite | başındaki valuews öğesi. |
| AllowTrailingWhite | sonundaki valuews öğesi. |
| AllowLeadingSign | başındaki valuesign öğesi. |
| AllowTrailingSign | sonundaki valuesign öğesi. |
| AllowParentheses | Sayısal değeri kapsayan parantez biçimindeki sign öğesi. |
| AllowThousands | Grup ayırıcı (,) öğesi. |
| AllowCurrencySymbol | Para birimi ($) öğesi. |
| Currency | Tüm öğeler. Ancak, value üstel gösterimde onaltılık bir sayıyı veya sayıyı temsil edemez. |
| Float | başında veya sonundaki valuews öğesi, öğesinin valuebaşında ve ondalık nokta (.) simgesiyle işaret eder. parametresi üstel value gösterim de kullanabilir. |
| Number | , , grup ayırıcısı (,) ve ondalık ayırıcı (.) öğeleri. signws |
| Any | Tüm öğeler. Ancak, value onaltılık bir sayıyı temsil edemez. |
Önemli
yöntemi tarafından ToString çıktısı alınan bir BigInteger değerin dize gösterimine gidiş dönüş yapmak için yöntemini kullanırsanızParse, değerin BigInteger.ToString(String) dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız gerekir. Aksi takdirde, dize gösterimi özgün değerin BigInteger yalnızca en önemli 50 basamağını korur ve değeri geri yüklemek BigInteger için yöntemini kullandığınızda Parse veriler kaybolabilir.
içinde belirli stil öğelerinin NumberStyles.AllowHexSpecifiervaluebulunmasına izin veren ancak gerektirmeyen diğer NumberStyles değerlerden farklı olarak, stil değeri içindeki tek tek sayısal karakterlerin value her zaman onaltılık karakterler olarak yorumlandığı anlamına gelir. Geçerli onaltılık karakterler 0-9, A-F ve a-f şeklindedir. parametresiyle style birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStylesHexNumberher iki boşluk bayrağını da içeren bileşik bir sayı stili içerir.)
Uyarı
Onaltılık bir sayının dize gösterimi isevalue, bundan önce onu onaltılık sayı olarak ayıran herhangi bir süsleme (veya &hgibi0x) olamaz. Bu, dönüştürmenin başarısız olmasına neden olur.
Onaltılık bir dizeysevalue, yöntemi, ilk iki onaltılık basamak değerinden Parse(String, NumberStyles) büyük veya buna eşitse0x80, ikinin tamamlayıcı gösterimini kullanarak depolanmış negatif bir sayı olarak yorumlarvalue. Başka bir deyişle yöntemi, içindeki ilk baytın value en yüksek sıralı bitini işaret biti olarak yorumlar. Onaltılık bir dizenin doğru bir pozitif sayı olarak yorumlandığından emin olmak için içindeki ilk basamak value sıfır değerine sahip olmalıdır. Örneğin, yöntem negatif bir değer olarak yorumlar 0x80 , ancak ya da 0x0800x0080 pozitif bir değer olarak yorumlar. Aşağıdaki örnekte, negatif ve pozitif değerleri temsil eden onaltılık dizeler arasındaki fark gösterilmektedir.
using System;
using System.Globalization;
using System.Numerics;
public class Example
{
public static void Main()
{
string[] hexStrings = { "80", "E293", "F9A2FF", "FFFFFFFF",
"080", "0E293", "0F9A2FF", "0FFFFFFFF",
"0080", "00E293", "00F9A2FF", "00FFFFFFFF" };
foreach (string hexString in hexStrings)
{
BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
}
}
}
// The example displays the following output:
// Converted 0x80 to -128.
// Converted 0xE293 to -7533.
// Converted 0xF9A2FF to -417025.
// Converted 0xFFFFFFFF to -1.
// Converted 0x080 to 128.
// Converted 0x0E293 to 58003.
// Converted 0x0F9A2FF to 16360191.
// Converted 0x0FFFFFFFF to 4294967295.
// Converted 0x0080 to 128.
// Converted 0x00E293 to 58003.
// Converted 0x00F9A2FF to 16360191.
// Converted 0x00FFFFFFFF to 4294967295.
open System.Globalization
open System.Numerics
let hexStrings =
[| "80"
"E293"
"F9A2FF"
"FFFFFFFF"
"080"
"0E293"
"0F9A2FF"
"0FFFFFFFF"
"0080"
"00E293"
"00F9A2FF"
"00FFFFFFFF" |]
for hexString in hexStrings do
let number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
printfn $"Converted 0x{hexString} to {number:N0}."
// The example displays the following output:
// Converted 0x80 to -128.
// Converted 0xE293 to -7533.
// Converted 0xF9A2FF to -417025.
// Converted 0xFFFFFFFF to -1.
// Converted 0x080 to 128.
// Converted 0x0E293 to 58003.
// Converted 0x0F9A2FF to 16360191.
// Converted 0x0FFFFFFFF to 4294967295.
// Converted 0x0080 to 128.
// Converted 0x00E293 to 58003.
// Converted 0x00F9A2FF to 16360191.
// Converted 0x00FFFFFFFF to 4294967295.
Imports System.Globalization
Imports System.Numerics
Module Example
Public Sub Main()
Dim hexStrings() As String = { "80", "E293", "F9A2FF", "FFFFFFFF",
"080", "0E293", "0F9A2FF", "0FFFFFFFF",
"0080", "00E293", "00F9A2FF", "00FFFFFFFF" }
For Each hexString As String In hexStrings
Dim number As BigInteger = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
Next
End Sub
End Module
' The example displays the following output:
' Converted 0x80 to -128.
' Converted 0xE293 to -7533.
' Converted 0xF9A2FF to -417025.
' Converted 0xFFFFFFFF to -1.
' Converted 0x080 to 128.
' Converted 0x0E293 to 58003.
' Converted 0x0F9A2FF to 16360191.
' Converted 0x0FFFFFFFF to 4294967295.
' Converted 0x0080 to 128.
' Converted 0x00E293 to 58003.
' Converted 0x00F9A2FF to 16360191.
' Converted 0x00FFFFFFFF to 4294967295.
value 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 Parse(String, NumberStyles, IFormatProvider) .
Ayrıca bkz.
Şunlara uygulanır
Parse(String)
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
Bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.
public:
static System::Numerics::BigInteger Parse(System::String ^ value);
public static System.Numerics.BigInteger Parse(string value);
static member Parse : string -> System.Numerics.BigInteger
Public Shared Function Parse (value As String) As BigInteger
Parametreler
- value
- String
Dönüştürülecek sayıyı içeren dize.
Döndürülenler
parametresinde value belirtilen sayıya eşdeğer bir değer.
Özel durumlar
value, null'e eşittir.
value doğru biçimde değil.
Örnekler
Aşağıdaki örnek, iki BigInteger nesnenin Parse(String) örneğini oluştururken yöntemini kullanır. Her nesneyi başka bir sayı ile çarpar ve ardından iki değer arasındaki ilişkiyi belirlemek için yöntemini çağırır Compare .
string stringToParse = String.Empty;
try
{
// Parse two strings.
string string1, string2;
string1 = "12347534159895123";
string2 = "987654321357159852";
stringToParse = string1;
BigInteger number1 = BigInteger.Parse(stringToParse);
Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number1);
stringToParse = string2;
BigInteger number2 = BigInteger.Parse(stringToParse);
Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number2);
// Perform arithmetic operations on the two numbers.
number1 *= 3;
number2 *= 2;
// Compare the numbers.
int result = BigInteger.Compare(number1, number2);
switch (result)
{
case -1:
Console.WriteLine("{0} is greater than {1}.", number2, number1);
break;
case 0:
Console.WriteLine("{0} is equal to {1}.", number1, number2);
break;
case 1:
Console.WriteLine("{0} is greater than {1}.", number1, number2);
break;
}
}
catch (FormatException)
{
Console.WriteLine("Unable to parse {0}.", stringToParse);
}
// The example displays the following output:
// Converted '12347534159895123' to 12,347,534,159,895,123.
// Converted '987654321357159852' to 987,654,321,357,159,852.
// 1975308642714319704 is greater than 37042602479685369.
let mutable stringToParse = ""
try
// Parse two strings.
let string1 = "12347534159895123"
let string2 = "987654321357159852"
stringToParse <- string1
let number1 = BigInteger.Parse stringToParse
printfn $"Converted '{stringToParse}' to {number1:N0}."
stringToParse <- string2
let number2 = BigInteger.Parse stringToParse
printfn $"Converted '{stringToParse}' to {number2:N0}."
// Perform arithmetic operations on the two numbers.
let number1 = number1 * bigint 3
let number2 = number2 * bigint 2
// Compare the numbers.
let result = BigInteger.Compare(number1, number2)
match result with
| -1 -> printfn $"{number2:N0} is greater than {number1:N0}."
| 0 -> printfn $"{number1:N0} is equal to {number2:N0}."
| 1
| _ -> printfn $"{number1:N0} is greater than {number2:N0}."
with :? FormatException ->
printfn $"Unable to parse {stringToParse}."
// The example displays the following output:
// Converted '12347534159895123' to 12,347,534,159,895,123.
// Converted '987654321357159852' to 987,654,321,357,159,852.
// 1975308642714319704 is greater than 37042602479685369.
Dim stringToParse As String = String.Empty
Try
' Parse two strings.
Dim string1, string2 As String
string1 = "12347534159895123"
string2 = "987654321357159852"
stringToParse = string1
Dim number1 As BigInteger = BigInteger.Parse(stringToParse)
Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number1)
stringToParse = string2
Dim number2 As BigInteger = BigInteger.Parse(stringToParse)
Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number2)
' Perform arithmetic operations on the two numbers.
number1 *= 3
number2 *= 2
' Compare the numbers.
Select Case BigInteger.Compare(number1, number2)
Case -1
Console.WriteLine("{0} is greater than {1}.", number2, number1)
Case 0
Console.WriteLine("{0} is equal to {1}.", number1, number2)
Case 1
Console.WriteLine("{0} is greater than {1}.", number1, number2)
End Select
Catch e As FormatException
Console.WriteLine("Unable to parse {0}.", stringToParse)
End Try
' The example displays the following output:
' Converted '12347534159895123' to 12,347,534,159,895,123.
' Converted '987654321357159852' to 987,654,321,357,159,852.
' 1975308642714319704 is greater than 37042602479685369.
Açıklamalar
parametresi, value aşağıdaki biçimdeki bir sayının dize gösterimi olmalıdır.
[ws][sign]rakamlar[ws]
Köşeli ayraç ([ ve ]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.
| Öğe | Description |
|---|---|
| Ws | İsteğe bağlı boşluk. |
| işaret | İsteğe bağlı bir işaret. Geçerli işaret karakterleri geçerli kültürün NumberFormatInfo.NegativeSign ve NumberFormatInfo.PositiveSign özellikleri tarafından belirlenir. |
| Basamak | 0 ile 9 arasında bir basamak dizisi. Baştaki sıfırlar yoksayılır. |
Uyarı
parametresi tarafından value belirtilen dize, stil kullanılarak NumberStyles.Integer yorumlanır. Hiçbir grup ayırıcısı veya ondalık ayırıcı içeremez ve ondalık bölümü olamaz.
value parametresi, geçerli sistem kültürü için başlatılan bir System.Globalization.NumberFormatInfo nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. NumberFormatInfo.CurrentInfo. Belirli bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi ayrıştırmak için yöntemini kullanın Parse(String, IFormatProvider) .
Önemli
yöntemi tarafından ToString çıktısı alınan bir BigInteger değerin dize gösterimine gidiş dönüş yapmak için yöntemini kullanırsanızParse, değerin BigInteger.ToString(String) dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız gerekir. Aksi takdirde, dize gösterimi özgün değerin BigInteger yalnızca en önemli 50 basamağını korur ve değeri geri yüklemek BigInteger için yöntemini kullandığınızda Parse veriler kaybolabilir.