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 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
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 valuebu yöntemin 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ç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 valuestyle bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda valuestyleNumberStyles.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 valuestyle görünebilir. |
| sign | İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvaluestyle görüntülenebilir.styleNumberStyles.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 valuestyle 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 valuestyle 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 styleNumberStyles.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 valuebulunabilecek öğ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 valuews öğesi. |
| AllowTrailingWhite | sonundaki valuews öğesi. |
| AllowLeadingSign | başındaki valuesign öğesi. |
| AllowTrailingSign | sonundaki valuesign öğ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 valuews öğesi, başlangıcını valueve 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. signws |
| 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.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ı 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 &hgibi0x) 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 0x0800x0080 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 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 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 NumberFormatInfoproviderGetFormat 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 providerGetFormat 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 providernull, 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 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-
style veya bayrağını AllowHexSpecifierHexNumber başka bir değerle birlikte içerir.
value, null değeridir.
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 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 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ç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 valuestyle bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda valuestyleNumberStyles.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 valuestyle görünebilir. |
| sign | İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvaluestyle görüntülenebilir.styleNumberStyles.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 valuestyle 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 styleNumberStyles.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 valueolması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde valuebulunabilecek öğ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 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 onaltılık bir sayıyı veya üstel gösterimindeki bir sayıyı temsil edemez. |
| Float | öğesinin başında veya sonundaki valuews öğesi, başında valueve 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.AllowHexSpecifiervaluebulunması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 valuehakkı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 providernull, 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 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-
style veya bayrağını AllowHexSpecifierHexNumber başka bir değerle birlikte içerir.
value, null değeridir.
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 ç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 valuebu yöntemin 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ç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 valuestyle bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda valuestyleNumberStyles.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 valuestyle görünebilir. |
| sign | İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvaluestyle görüntülenebilir.styleNumberStyles.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 valuestyle 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 styleNumberStyles.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 valuebulunabilecek öğ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 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 onaltılık bir sayıyı veya üstel gösterimindeki bir sayıyı temsil edemez. |
| Float | öğesinin başında veya sonundaki valuews öğesi, başında valueve 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.AllowHexSpecifiervaluebulunması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 &hgibi0x) 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 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 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 providernull, NumberFormatInfo geçerli kültürün nesnesi kullanılır.