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
Parse(String) |
Bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür. |
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, IFormatProvider) |
Belirtilen 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(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(String)
- 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 bir dize.
Döndürülenler
parametresinde value
belirtilen sayıya eşdeğer bir değer.
Özel durumlar
value
, null
değeridir.
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ç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. Geçerli işaret karakterleri geçerli kültürün NumberFormatInfo.NegativeSign ve NumberFormatInfo.PositiveSign özellikleri tarafından belirlenir. |
Basamak | 0 İle 9 arasında değişen bir basamak dizisi. Baştaki sıfırlar dikkate alınmaz. |
Not
parametresi tarafından value
belirtilen dize, stil kullanılarak NumberStyles.Integer yorumlanır. Herhangi 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 Parse(String, IFormatProvider) ayrıştırmak için yöntemini kullanın.
Önemli
yöntemi tarafından ToString çıktısı alınan bir BigInteger değerin dize gösterimini 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.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, IFormatProvider)
- 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ı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
işleminin sonucu.
Uygulamalar
Şunlara uygulanır
Parse(String, NumberStyles)
- 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 sayı içeren bir dize.
- style
- NumberStyles
İzin verilen biçimini belirten numaralandırma 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-
style
veya bayrağını AllowHexSpecifierHexNumber başka bir değerle birlikte içerir.
value
, null
değeridir.
value
tarafından NumberStylesbelirtilen giriş deseniyle uyumlu değildir.
Örnekler
Aşağıdaki örnekte, parametresi için Parse(String, NumberStyles) çeşitli olası değerlerle yöntemine yapılan style
çağrılar gösterilmektedir. Bir dizeyi onaltılık değer olarak yorumlamayı ve boşluklara ve işaret simgelerine izin vermemeye yönelik yöntemleri 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 nokta 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 value
bu yöntemin aşırı yüklemesini kullanışlı value
hale getirir.
değerine style
value
bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
içeriyorsa style
NumberStyles.AllowHexSpecifiervalue
, parametresi aşağıdaki öğeleri içerebilir:
[ws] hexdigits[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 value style bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda value style NumberStyles.AllowTrailingWhite görüntülenebilir. |
$ | 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 value style görünebilir. |
sign | İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvalue style görüntülenebilir.style NumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue . |
Basamak fractional_digits exponential_digits |
0 İle 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir. |
, | Kültüre özgü bir grup ayırıcı simge. Bayrağı içeriyorsa geçerli kültürün grup ayırıcısı NumberStyles.AllowThousands içinde value style görünebilir. |
. | Bir kültüre özgü ondalık nokta sembolü. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowDecimalPoint ondalık noktası simgesi içinde value style görünebilir. Ayrıştırma işleminin başarılı olması için kesirli basamak olarak yalnızca 0 rakamı görüntülenebilir; fractional_digits başka bir rakam içeriyorsa, bir FormatException oluşturulur. |
E | Değerin üslü (bilimsel) gösterimle temsil edildiğini gösteren "e" veya "E" karakteri. parametresi, value bayrağını içeriyorsa bir sayıyı üstel gösteriminde style NumberStyles.AllowExponent gösterebilir. |
hexdigits | 0 İle f veya 0 ile f arasında 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 basamakları olan bir dize (stile NumberStyles.None karşılık gelir) her zaman başarıyla ayrıştırılıyor. Kalan NumberStyles üyelerin çoğu, giriş dizesinde mevcut olabilecek ancak mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde value
bulunabilecek öğeleri nasıl etkilediği gösterilir.
NumberStyles Değer |
Basamaklara ek olarak izin verilen value öğeler |
---|---|
None | Yalnızca rakamlar öğesi. |
AllowDecimalPoint | Ondalık ayırıcı (.) ve kesirli basamaklar öğeleri. |
AllowExponent | Exponential_digits ile birlikte üstel gösterimi gösteren "e" veya "E" karakteri. |
AllowLeadingWhite | başındaki value ws öğesi. |
AllowTrailingWhite | sonundaki value ws öğesi. |
AllowLeadingSign | başındaki value sign öğesi. |
AllowTrailingSign | sonundaki value sign öğesi. |
AllowParentheses | Sayısal değeri kapsayan parantez biçimindeki işaret öğesi. |
AllowThousands | Grup ayırıcı (,) öğesi. |
AllowCurrencySymbol | Para birimi ($) öğesi. |
Currency | Tüm öğeler. Ancak, value onaltılık bir sayıyı veya üstel gösterimindeki bir sayıyı temsil edemez. |
Float | öğesinin başında veya sonundaki value ws öğesi, başlangıcını value ve ondalık ayırıcı (.) simgesini imzalar. parametresi üstel value gösterimi de kullanabilir. |
Number | , , grup ayırıcısı (,) ve ondalık ayırıcı (.) öğeleri. sign ws |
Any | Tüm öğeler. Ancak, value onaltılık bir sayıyı temsil edemez. |
Önemli
yöntemi tarafından ToString çıktısı Parse alınan bir BigInteger değerin dize gösterimine gidiş dönüş yapmak için yöntemini kullanırsanız, değerin dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız BigInteger.ToString(String) 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.AllowHexSpecifiervalue
bulunması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ı karakter 0-9, A-F ve a-f karakterleridir. parametresiyle style
birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStyles her iki boşluk bayrağını da içeren bileşik bir sayı stili HexNumberiçerir.)
Not
Onaltılık bir sayının dize gösterimi isevalue
, bunun önünde onaltılık sayı olarak ayırt eden herhangi bir dekorasyon (veya &h
gibi0x
) olamaz. Bu dönüştürmenin başarısız olmasına neden olur.
Onaltılık bir dizeysevalue
, yöntemi ilk Parse(String, NumberStyles) iki onaltılık basamak değerinden büyük veya eşitse0x80
, ikinin tamamlayıcı gösterimini kullanarak depolanan 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 dizenin doğru bir pozitif sayı olarak yorumlandığından emin olmak için içindeki ilk rakamın value
değeri sıfır olmalıdır. Örneğin, yöntemi negatif bir değer olarak yorumlar 0x80
, ancak ya da 0x080
0x0080
pozitif bir değer olarak yorumlar. Aşağıdaki örnek, negatif ve pozitif değerleri temsil eden onaltılık dizeler arasındaki farkı gösterir.
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. Biçimlendirme bilgileri ayrıştırma işlemi için 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, IFormatProvider)
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
- Kaynak:
- BigInteger.cs
Belirtilen 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 sayı içeren bir dize.
- provider
- IFormatProvider
hakkında value
kü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
değeridir.
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österilir. 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 nesnesini 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 bir nesnenin örneği aşağıdaki kodla 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. Biçimlendirme bilgilerini sağlayan nesneyi parametresine provider
geçirirNumberFormatInfo.
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ç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. Geçerli işaret karakterleri, nesnenin NumberFormatInfo.NegativeSign yöntemi tarafından döndürülen nesnenin NumberFormatInfoprovider GetFormat ve NumberFormatInfo.PositiveSign özellikleri tarafından belirlenir. |
Basamak | 0 İle 9 arasında değişen bir basamak dizisi. Baştaki sıfırlar dikkate alınmaz. |
Not
parametresi tarafından value
belirtilen dize, stil kullanılarak NumberStyles.Integer yorumlanır. Herhangi 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ı Parse alınan bir BigInteger değerin dize gösterimine gidiş dönüş yapmak için yöntemini kullanırsanız, değerin dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız BigInteger.ToString(String) 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 provider
GetFormat yöntemini çağırır ve türü temsil NumberFormatInfo eden bir Type nesne iletir. Yöntemi GetFormat daha sonra parametresinin NumberFormatInfo biçimi value
hakkında bilgi sağlayan nesnesini 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 kendini 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 provider
null
, biçimlendirmesi value
geçerli kültürün NumberFormatInfo nesnesine göre yorumlanır.
Ayrıca bkz.
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- 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ılması.
- style
- NumberStyles
İzin verilen biçimini belirten numaralandırma değerlerinin bit düzeyinde birleşimi value
.
- provider
- IFormatProvider
hakkında value
kü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-
style
veya bayrağını AllowHexSpecifierHexNumber başka bir değerle birlikte içerir.
value
, null
değeridir.
value
tarafından style
belirtilen 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 bir bileşimi olmalıdır. parametresi, tarafından temsil value
edilen style
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 value
bu yöntem aşırı yüklemesini kullanışlı value
hale getirir.
değerine style
value
bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
içeriyorsa style
NumberStyles.AllowHexSpecifiervalue
, parametresi aşağıdaki öğeleri içerebilir:
[ws] hexdigits[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 value style bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda value style NumberStyles.AllowTrailingWhite görüntülenebilir. |
$ | Kültüre özgü para birimi simgesi. içindeki value konumu, parametresi tarafından NumberFormatInfo.CurrencyNegativePattern belirtilen kültürün ve NumberFormatInfo.CurrencyPositivePattern özellikleriyle provider tanımlanır. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde value style görünebilir. |
sign | İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvalue style görüntülenebilir.style NumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue . |
Basamak fractional_digits exponential_digits |
0 İle 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir. |
, | Kültüre özgü bir grup ayırıcı simge. bayrağını içeriyorsaNumberStyles.AllowThousands, tarafından provider belirtilen kültürün grup ayırıcı simgesi içinde value style görünebilir. |
. | Bir kültüre özgü ondalık nokta sembolü. tarafından belirlenen provider kültürün ondalık nokta simgesi bayrağını style içeriyorsa NumberStyles.AllowDecimalPoint içinde value görünebilir. Ayrıştırma işleminin başarılı olması için kesirli basamak olarak yalnızca 0 rakamı görüntülenebilir; fractional_digits başka bir rakam içeriyorsa, bir FormatException oluşturulur. |
E | Değerin üslü (bilimsel) gösterimle temsil edildiğini gösteren "e" veya "E" karakteri. parametresi, value bayrağını içeriyorsa bir sayıyı üstel gösteriminde style NumberStyles.AllowExponent gösterebilir. |
hexdigits | 0 İle f veya 0 ile f arasında 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.
value
Yalnızca basamakları olan (stile NumberStyles.None karşılık gelen) A her zaman başarıyla ayrıştırılıyor. Kalan NumberStyles üyelerin çoğu içinde mevcut olabilecek ancak mevcut value
olması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde value
bulunabilecek öğeleri nasıl etkilediği gösterilir.
NumberStyles değeri | Basamakların yanı sıra değerde izin verilen öğeler |
---|---|
None | Yalnızca digits öğesi. |
AllowDecimalPoint | Ondalık ayırıcı (.) ve kesirli basamaklar öğeleri. |
AllowExponent | "e" veya "E" karakteri üstel gösterimi belirtir. exponential_digits ile birlikte. |
AllowLeadingWhite | başındaki value ws öğesi. |
AllowTrailingWhite | sonundaki value ws öğesi. |
AllowLeadingSign | başındaki value sign öğesi. |
AllowTrailingSign | sonundaki value sign öğ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 onaltılık bir sayıyı veya üstel gösterimindeki bir sayıyı temsil edemez. |
Float | öğesinin başında veya sonundaki value ws öğesi, başında value ve ondalık ayırıcı (.) simgesiyle imzalar. parametresi üstel value gösterimi 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.AllowHexSpecifiervalue
bulunmasına izin veren ancak gerektirmeyen diğer NumberStyles değerlerden farklı olarak, stil değeri içindeki value
tek tek sayısal karakterlerin her zaman onaltılık karakterler olarak yorumlandığı anlamına gelir. Geçerli onaltılı karakter 0-9, A-F ve a-f karakterleridir. 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 value
hakkında kültüre özgü bilgiler sağlayan bir NumberFormatInfo nesnesi döndürür. Genellikle aşağıdakilerden provider
biri olabilir:
CultureInfo Sayısal biçimlendirme bilgileri sağlayan kültürü temsil eden bir nesne. GetFormat yöntemi, sayısal biçimlendirme bilgileri sağlayan nesneyi döndürürNumberFormatInfo.
NumberFormatInfo Biçimlendirme bilgileri sağlayan bir nesne. (Uygulaması GetFormat yalnızca kendisini döndürür.)
Biçimlendirme bilgileri sağlayan nesneyi örneklemek ve döndürmek NumberFormatInfo için yöntemini uygulayan IFormatProvider ve kullanan GetFormat özel bir nesne.
ise provider
null
, NumberFormatInfo geçerli kültürün nesnesi kullanılır.
Ayrıca bkz.
Şunlara uygulanır
Parse(String, NumberStyles, IFormatProvider)
- 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 sayı içeren bir dize.
- style
- NumberStyles
İzin verilen biçimini belirten numaralandırma değerlerinin bit düzeyinde birleşimi value
.
- provider
- IFormatProvider
hakkında value
kü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-
style
veya bayrağını AllowHexSpecifierHexNumber başka bir değerle birlikte içerir.
value
, null
değeridir.
value
tarafından style
belirtilen 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
çeşitli çağrılar 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 nokta 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 value
bu yöntemin aşırı yüklemesini kullanışlı value
hale getirir.
değerine style
value
bağlı olarak parametresi aşağıdaki öğeleri içerebilir:
[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
içeriyorsa style
NumberStyles.AllowHexSpecifiervalue
, parametresi aşağıdaki öğeleri içerebilir:
[ws] hexdigits[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 value style bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda value style NumberStyles.AllowTrailingWhite görüntülenebilir. |
$ | Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresi tarafından NumberFormatInfo.CurrencyNegativePattern belirtilen kültürün ve NumberFormatInfo.CurrencyPositivePattern özellikleriyle provider tanımlanır. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde value style görünebilir. |
sign | İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvalue style görüntülenebilir.style NumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue . |
Basamak fractional_digits exponential_digits |
0 İle 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir. |
, | Kültüre özgü bir grup ayırıcı simge. bayrağını içeriyorsaNumberStyles.AllowThousands, tarafından provider belirtilen kültürün grup ayırıcı simgesi içinde value style görünebilir. |
. | Bir kültüre özgü ondalık nokta sembolü. tarafından belirlenen provider kültürün ondalık nokta simgesi bayrağını style içeriyorsa NumberStyles.AllowDecimalPoint içinde value görünebilir. Ayrıştırma işleminin başarılı olması için kesirli basamak olarak yalnızca 0 rakamı görüntülenebilir; fractional_digits başka bir rakam içeriyorsa, bir FormatException oluşturulur. |
E | Değerin üslü (bilimsel) gösterimle temsil edildiğini gösteren "e" veya "E" karakteri. parametresi, value bayrağını içeriyorsa bir sayıyı üstel gösteriminde style NumberStyles.AllowExponent gösterebilir. |
hexdigits | 0 İle f veya 0 ile f arasında 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 basamakları olan bir dize (stile NumberStyles.None karşılık gelir) her zaman başarıyla ayrıştırılıyor. Kalan NumberStyles üyelerin çoğu, giriş dizesinde mevcut olabilecek ancak mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde value
bulunabilecek öğeleri nasıl etkilediği gösterilir.
NumberStyles değeri | Basamakların yanı sıra değerde izin verilen öğeler |
---|---|
None | Yalnızca digits öğesi. |
AllowDecimalPoint | Ondalık ayırıcı (.) ve kesirli basamaklar öğeleri. |
AllowExponent | "e" veya "E" karakteri üstel gösterimi belirtir. exponential_digits ile birlikte. |
AllowLeadingWhite | başındaki value ws öğesi. |
AllowTrailingWhite | sonundaki value ws öğesi. |
AllowLeadingSign | başındaki value sign öğesi. |
AllowTrailingSign | sonundaki value sign öğ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 onaltılık bir sayıyı veya üstel gösterimindeki bir sayıyı temsil edemez. |
Float | öğesinin başında veya sonundaki value ws öğesi, başında value ve ondalık ayırıcı (.) simgesiyle imzalar. parametresi üstel value gösterimi 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österimini 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.AllowHexSpecifiervalue
bulunmasına izin veren ancak gerektirmeyen diğer NumberStyles değerlerden farklı olarak, stil değeri içindeki value
tek tek sayısal karakterlerin her zaman onaltılık karakterler olarak yorumlandığı anlamına gelir. Geçerli onaltılı karakter 0-9, A-F ve a-f karakterleridir. 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.)
Not
Onaltılık bir sayının dize gösterimi isevalue
, bundan önce onu onaltılık sayı olarak ayıran herhangi bir dekorasyon (veya &h
gibi0x
) olamaz. Bu dönüştürmenin başarısız olmasına neden olur.
Onaltılık bir dizeysevalue
, yöntemi ilk Parse(String, NumberStyles) iki onaltılık basamak değerinden büyük veya değerine 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 dizenin pozitif sayı olarak doğru yorumlandığından emin olmak için içindeki ilk basamak value
sıfır değerine sahip olmalıdır. Örneğin, yöntemi negatif bir değer olarak yorumlar 0x80
, ancak ya da 0x080
0x0080
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 value
hakkında kültüre özgü bilgiler sağlayan bir NumberFormatInfo nesnesi döndürür. Genellikle aşağıdakilerden provider
biri olabilir:
CultureInfo Sayısal biçimlendirme bilgileri sağlayan kültürü temsil eden bir nesne. GetFormat yöntemi, sayısal biçimlendirme bilgileri sağlayan nesneyi döndürürNumberFormatInfo.
NumberFormatInfo Biçimlendirme bilgileri sağlayan bir nesne. (Uygulaması GetFormat yalnızca kendisini döndürür.)
Biçimlendirme bilgileri sağlayan nesneyi örneklemek ve döndürmek NumberFormatInfo için yöntemini uygulayan IFormatProvider ve kullanan GetFormat özel bir nesne.
ise provider
null
, NumberFormatInfo geçerli kültürün nesnesi kullanılır.