BigInteger.Parse Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy szám sztringképét az azzal egyenértékűvé BigInteger alakítja.
Túlterhelések
| Név | Description |
|---|---|
| Parse(String, NumberStyles, IFormatProvider) |
Egy szám sztring-ábrázolását konvertálja egy megadott stílusban és kultúraspecifikus formátumban annak megfelelőjeként BigInteger . |
| Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
A megadott írásvédett karaktertartományban lévő szám ábrázolását konvertálja a megadott stílusban annak megfelelőjeként BigInteger . |
| Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) | |
| Parse(String, IFormatProvider) |
Egy adott kultúraspecifikus formátumban lévő szám sztringképét annak megfelelőjeként BigInteger alakítja át. |
| Parse(ReadOnlySpan<Char>, IFormatProvider) |
Több karakterből álló elemet elemez egy értékben. |
| Parse(ReadOnlySpan<Byte>, IFormatProvider) | |
| Parse(String) |
Egy szám sztringképét az azzal egyenértékűvé BigInteger alakítja. |
| Parse(String, NumberStyles) |
Egy adott stílusban lévő szám sztringképét a megfelelőre BigInteger alakítja át. |
Parse(String, NumberStyles, IFormatProvider)
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
Egy szám sztring-ábrázolását konvertálja egy megadott stílusban és kultúraspecifikus formátumban annak megfelelőjeként BigInteger .
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
Paraméterek
- value
- String
Egy átalakítandó számot tartalmazó sztring.
- style
- NumberStyles
A számbavételi értékek bitenkénti kombinációja, amely megadja a megengedett formátumot value.
- provider
- IFormatProvider
Egy objektum, amely kultúraspecifikus formázási információkat tartalmaz a fájlról value.
Válaszok
A paraméterben value megadott számmal egyenértékű érték.
Megvalósítás
Kivételek
style nem érték NumberStyles .
-vagy-
styleA AllowHexSpecifier egy másik értékkel együtt tartalmazza a HexNumber jelölőt.
value az null.
value nem felel meg a megadott bemeneti mintának style.
Példák
Az alábbi példa több hívást indít a metódushoz az Parse(String, NumberStyles, IFormatProvider) értékek és style paraméterek különböző kombinációinak provider használatával.
// 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.
A metódushoz Parse(String, NumberStyles, IFormatProvider) intézett egyes hívások száma az alábbi BigIntegerFormatProvider osztály egy példányát adja át, amely negatív jelként egy tilde (~) értéket határoz meg.
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
Megjegyzések
A style paraméter meghatározza azokat a stíluselemeket (például a szóközt, a pozitív vagy negatív jelszimbólumot, a csoportelválasztó szimbólumot vagy a tizedesjelet), amelyek a paraméterben value engedélyezve vannak az elemzési művelet sikeres végrehajtásához.
styles az enumerálás bitjelölőinek kombinációjának NumberStyles kell lennie. A style paraméter hasznossá teszi ezt a metódust, ha value egy hexadecimális érték sztring-ábrázolását tartalmazza, ha az általuk value képviselt számrendszer (decimális vagy hexadecimális) csak futásidőben ismert, vagy ha ki szeretné tiltani a szóközt vagy a jel szimbólumát.value
Az értéktől stylefüggően a paraméter a value következő elemeket tartalmazhatja:
[ws][$][jel][számjegyek;]számjegyek[.fractional_digits][E[jel]exponential_digits][ws]
Ha style tartalmazza NumberStyles.AllowHexSpecifier, a paraméter a value következő elemeket tartalmazhatja:
[ws]hexdigits[ws]
A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.
| Elem | Leírás |
|---|---|
| Ws | Nem kötelező üres terület. Ha a jelölőt is magában foglaljavalue, az elején styleNumberStyles.AllowLeadingWhite fehér terület jelenhet meg, és a jelölőt is tartalmazó value terület végén styleNumberStyles.AllowTrailingWhite jelenhet meg. |
| $ | Kultúraspecifikus pénznemszimbólum. A sztringben elfoglalt helyét a NumberFormatInfo.CurrencyNegativePattern paraméter által NumberFormatInfo.CurrencyPositivePattern jelzett kultúra és provider tulajdonságok határozzák meg. Az aktuális kultúra pénznemszimbóluma akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowCurrencySymbol . |
| jel | Nem kötelező jel. A jel akkor jelenhet meg, ha tartalmazza a jelölőt, és a végén, value ha style tartalmazza a jelölőtNumberStyles.AllowLeadingSign.valuestyleNumberStyles.AllowTrailingSign Zárójelekkel negatív értéket jelölhet value , ha style a NumberStyles.AllowParentheses jelölőt is tartalmazza. |
|
Számjegy fractional_digits exponential_digits |
Számjegyek sorozata 0 és 9 között. A fractional_digits esetében csak a 0 számjegy érvényes. |
| , | Kultúraspecifikus csoportelválasztó szimbólum. A megadott kultúra provider csoportelválasztó szimbóluma akkor jelenhet meg value , ha style tartalmazza a jelölőt NumberStyles.AllowThousands . |
| . | Kultúraspecifikus tizedesjel. A kijelölt kultúra provider tizedesjele akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowDecimalPoint . A sikeres elemzési művelethez csak a 0 számjegy jelenhet meg tört számjegyként; ha fractional_digits bármilyen más számjegyet is tartalmaz, FormatException akkor a karaktert a függvény eldobja. |
| E | Az "e" vagy "E" karakter, amely azt jelzi, hogy az érték exponenciális (tudományos) jelölésben jelenik meg. A value paraméter exponenciális jelöléssel jelölhet egy számot, ha style tartalmazza a jelölőt NumberStyles.AllowExponent . |
| hexdigits | Hexadecimális számjegyek sorozata 0 és f között, vagy 0 és F között. |
Note
A befejező NUL (U+0000) karaktereket s az elemzési művelet figyelmen kívül hagyja, függetlenül az style argumentum értékétől.
A csak számjegyekkel rendelkező sztringek (amelyek megfelelnek a NumberStyles.None stílusnak) mindig sikeresen elemezhetők. A fennmaradó NumberStyles tagok többsége a bemeneti sztringben esetleg jelen lévő, de nem kötelező elemeket szabályozza. Az alábbi táblázat azt mutatja be, hogy az egyes NumberStyles tagok hogyan befolyásolják a benne található valueelemeket.
| NumberStyles érték | A számjegyeken kívül az értékben engedélyezett elemek |
|---|---|
| None | Csak a számjegyek elem. |
| AllowDecimalPoint | A tizedesjel (.) és a törtjegyű elemek. |
| AllowExponent | Az "e" vagy "E" karakter, amely exponenciális jelölést jelez. és exponential_digits. |
| AllowLeadingWhite | A ws elem az elején value. |
| AllowTrailingWhite | A ws elem a végén value. |
| AllowLeadingSign | A jelelem a következő elején: .value |
| AllowTrailingSign | A jelelem a végén value. |
| AllowParentheses | A numerikus értéket tartalmazó zárójelek formájában megjelenő jelelem . |
| AllowThousands | A csoportelválasztó (,) elem. |
| AllowCurrencySymbol | A pénznem ($) elem. |
| Currency | Minden elem.
value Nem jelölhet azonban hexadecimális számot vagy exponenciális számokat. |
| Float | A ws elem a kezdő vagy a végén value, a jel elején value, és a decimális pont (.) szimbólum. A value paraméter exponenciális jelölést is használhat. |
| Number | A ws, signcsoportelválasztó (,) és decimális (.) elemek. |
| Any | Minden elem.
value A hexadecimális szám azonban nem jelölhető. |
Important
Ha a Parse metódussal egy olyan érték sztringképének BigInteger kerekítésére használja, amelyet a ToString metódus adott ki, a metódust az "R" formátumjelölővel kell használnia BigInteger.ToString(String) az BigInteger érték sztring-ábrázolásának létrehozásához. Ellenkező esetben a BigInteger sztringábrázolás csak az eredeti érték 50 legjelentősebb számjegyét őrzi meg, és az adatok elveszhetnek, amikor a metódust Parse használja az BigInteger érték visszaállítására.
A többi NumberStyles értéktől eltérően, amelyek lehetővé teszik, de nem igénylik bizonyos stíluselemek valuejelenlétét, a NumberStyles.AllowHexSpecifier stílusérték azt jelenti, hogy az egyes numerikus karakterek value mindig hexadecimális karakterekként vannak értelmezve. Az érvényes hexadecimális karakterek: 0-9, A-F és a-f. A paraméterrel style kombinálható egyéb jelzők a következők NumberStyles.AllowLeadingWhite : és NumberStyles.AllowTrailingWhite. (Az NumberStyles enumerálás egy összetett számstílust tartalmaz, HexNumberamely a szóközjeleket is tartalmazza.)
Note
Ha value egy hexadecimális szám sztringképe, akkor nem előzhető meg olyan díszítés (például 0x vagy &h), amely hexadecimális számként különbözteti meg. Ez a konvertálás sikertelenségéhez vezet.
Ha value hexadecimális sztring, akkor a Parse(String, NumberStyles) metódus negatív számként értelmezi value a két egymást kiegészítő ábrázolással tárolt számot, ha az első két hexadecimális számjegye nagyobb vagy egyenlő 0x80. Más szóval a metódus az első bájt value legmagasabb rendű bitét jelbitként értelmezi. Annak érdekében, hogy a hexadecimális sztring helyesen pozitív számként legyen értelmezve, az első számjegynek value nulla értékűnek kell lennie. A metódus például negatív értékként értelmezi 0x80 , de vagy pozitív értékként értelmezi 0x0800x0080 . Az alábbi példa a negatív és pozitív értékeket képviselő hexadecimális sztringek közötti különbséget mutatja be.
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.
A provider paraméter implementáció IFormatProvider . A GetFormat metódus egy NumberFormatInfo objektumot ad vissza, amely kultúraspecifikus információkat nyújt a formátumáról value. Általában provider az alábbiak bármelyike lehet:
Olyan CultureInfo objektum, amely a numerikus formázási információkat biztosító kultúrát jelöli. A GetFormat metódus a NumberFormatInfo numerikus formázási adatokat tartalmazó objektumot adja vissza.
Formázási NumberFormatInfo információkat tartalmazó objektum. (A implementációja GetFormat csak önmagát adja vissza.)
Egyéni objektum, amely a metódust implementálja IFormatProvider és használja a GetFormat formázási információkat biztosító objektum példányosítására és visszaadására NumberFormatInfo .
Ha provider igen null, akkor a rendszer az NumberFormatInfo aktuális kultúra objektumát használja.
Lásd még
A következőre érvényes:
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
A megadott írásvédett karaktertartományban lévő szám ábrázolását konvertálja a megadott stílusban annak megfelelőjeként BigInteger .
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
Paraméterek
- value
- ReadOnlySpan<Char>
A konvertálni kívánt számot tartalmazó karakterek írásvédett száma.
- style
- NumberStyles
A számbavételi értékek bitenkénti kombinációja, amely megadja a megengedett formátumot value.
- provider
- IFormatProvider
Egy objektum, amely kultúraspecifikus formázási információkat tartalmaz a fájlról value.
Válaszok
A paraméterben value megadott számmal egyenértékű érték.
Megvalósítás
Kivételek
style nem érték NumberStyles .
-vagy-
styleA AllowHexSpecifier egy másik értékkel együtt tartalmazza a HexNumber jelölőt.
value az null.
value nem felel meg a megadott bemeneti mintának style.
Megjegyzések
A style paraméter meghatározza azokat a stíluselemeket (például a szóközt, a pozitív vagy negatív jelszimbólumot, a csoportelválasztó szimbólumot vagy a tizedesjelet), amelyek a paraméterben value engedélyezve vannak az elemzési művelet sikeres végrehajtásához.
styles az enumerálás bitjelölőinek kombinációjának NumberStyles kell lennie. A style paraméter hasznossá teszi ezt a metódust, ha value hexadecimális érték ábrázolását tartalmazza, ha az általuk value képviselt számrendszer (decimális vagy hexadecimális) csak futáskor ismert, vagy ha le szeretné tiltani a szóközt vagy a jel szimbólumát.value
Az értéktől stylefüggően a paraméter a value következő elemeket tartalmazhatja:
[ws][$][jel][számjegyek;]számjegyek[.fractional_digits][E[jel]exponential_digits][ws]
Ha style tartalmazza NumberStyles.AllowHexSpecifier, a paraméter a value következő elemeket tartalmazhatja:
[ws]hexdigits[ws]
A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.
| Elem | Leírás |
|---|---|
| Ws | Nem kötelező üres terület. Ha a jelölőt is magában foglaljavalue, az elején styleNumberStyles.AllowLeadingWhite fehér terület jelenhet meg, és a jelölőt is tartalmazó value terület végén styleNumberStyles.AllowTrailingWhite jelenhet meg. |
| $ | Kultúraspecifikus pénznemszimbólum. Pozícióját value a NumberFormatInfo.CurrencyNegativePattern paraméter által NumberFormatInfo.CurrencyPositivePattern jelzett kultúra és provider tulajdonságok határozzák meg. Az aktuális kultúra pénznemszimbóluma akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowCurrencySymbol . |
| jel | Nem kötelező jel. A jel akkor jelenhet meg, ha tartalmazza a jelölőt, és a végén, value ha style tartalmazza a jelölőtNumberStyles.AllowLeadingSign.valuestyleNumberStyles.AllowTrailingSign Zárójelekkel negatív értéket jelölhet value , ha style a NumberStyles.AllowParentheses jelölőt is tartalmazza. |
|
Számjegy fractional_digits exponential_digits |
Számjegyek sorozata 0 és 9 között. A fractional_digits esetében csak a 0 számjegy érvényes. |
| , | Kultúraspecifikus csoportelválasztó szimbólum. A megadott kultúra provider csoportelválasztó szimbóluma akkor jelenhet meg value , ha style tartalmazza a jelölőt NumberStyles.AllowThousands . |
| . | Kultúraspecifikus tizedesjel. A kijelölt kultúra provider tizedesjele akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowDecimalPoint . A sikeres elemzési művelethez csak a 0 számjegy jelenhet meg tört számjegyként; ha fractional_digits bármilyen más számjegyet is tartalmaz, FormatException akkor a karaktert a függvény eldobja. |
| E | Az "e" vagy "E" karakter, amely azt jelzi, hogy az érték exponenciális (tudományos) jelölésben jelenik meg. A value paraméter exponenciális jelöléssel jelölhet egy számot, ha style tartalmazza a jelölőt NumberStyles.AllowExponent . |
| hexdigits | Hexadecimális számjegyek sorozata 0 és f között, vagy 0 és F között. |
Note
A befejező NUL (U+0000) karaktereket s az elemzési művelet figyelmen kívül hagyja, függetlenül az style argumentum értékétől.
A value csak számjegyekkel rendelkező (a NumberStyles.None stílusnak megfelelő) elemek mindig sikeresen elemezhetők. A fennmaradó NumberStyles tagok többsége azokat az elemeket szabályozza, amelyek jelen lehetnek, de nem szükségesek a jelen lévő elemekhez value. Az alábbi táblázat azt mutatja be, hogy az egyes NumberStyles tagok hogyan befolyásolják a benne található valueelemeket.
| NumberStyles érték | A számjegyeken kívül az értékben engedélyezett elemek |
|---|---|
| None | Csak a számjegyek elem. |
| AllowDecimalPoint | A tizedesjel (.) és a törtjegyű elemek. |
| AllowExponent | Az "e" vagy "E" karakter, amely exponenciális jelölést jelez. és exponential_digits. |
| AllowLeadingWhite | A ws elem az elején value. |
| AllowTrailingWhite | A ws elem a végén value. |
| AllowLeadingSign | A jelelem a következő elején: .value |
| AllowTrailingSign | A jelelem a végén value. |
| AllowParentheses | A numerikus értéket tartalmazó zárójelek formájában megjelenő jelelem . |
| AllowThousands | A csoportelválasztó (,) elem. |
| AllowCurrencySymbol | A pénznem ($) elem. |
| Currency | Minden elem.
value Nem jelölhet azonban hexadecimális számot vagy exponenciális számokat. |
| Float | A ws elem a kezdő vagy a végén value, a jel elején value, és a decimális pont (.) szimbólum. A value paraméter exponenciális jelölést is használhat. |
| Number | A ws, signcsoportelválasztó (,) és decimális (.) elemek. |
| Any | Minden elem.
value A hexadecimális szám azonban nem jelölhető. |
A többi NumberStyles értéktől eltérően, amelyek lehetővé teszik, de nem igénylik bizonyos stíluselemek valuejelenlétét, a NumberStyles.AllowHexSpecifier stílusérték azt jelenti, hogy az egyes numerikus karakterek value mindig hexadecimális karakterekként vannak értelmezve. Az érvényes hexadecimális karakterek: 0-9, A-F és a-f. A paraméterrel style kombinálható egyéb jelzők a következők NumberStyles.AllowLeadingWhite : és NumberStyles.AllowTrailingWhite. (Az NumberStyles enumerálás egy összetett számstílust tartalmaz, HexNumberamely a szóközjeleket is tartalmazza.)
A provider paraméter implementáció IFormatProvider . A GetFormat metódus egy NumberFormatInfo objektumot ad vissza, amely kultúraspecifikus információkat nyújt a formátumáról value. Általában provider az alábbiak bármelyike lehet:
Olyan CultureInfo objektum, amely a numerikus formázási információkat biztosító kultúrát jelöli. A GetFormat metódus a NumberFormatInfo numerikus formázási adatokat tartalmazó objektumot adja vissza.
Formázási NumberFormatInfo információkat tartalmazó objektum. (A implementációja GetFormat csak önmagát adja vissza.)
Egyéni objektum, amely a metódust implementálja IFormatProvider és használja a GetFormat formázási információkat biztosító objektum példányosítására és visszaadására NumberFormatInfo .
Ha provider igen null, akkor a rendszer az NumberFormatInfo aktuális kultúra objektumát használja.
Lásd még
A következőre érvényes:
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Forrás:
- BigInteger.cs
public static System.Numerics.BigInteger Parse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As BigInteger
Paraméterek
- utf8Text
- ReadOnlySpan<Byte>
- style
- NumberStyles
- provider
- IFormatProvider
Válaszok
Megvalósítás
A következőre érvényes:
Parse(String, IFormatProvider)
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
Egy adott kultúraspecifikus formátumban lévő szám sztringképét annak megfelelőjeként BigInteger alakítja át.
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
Paraméterek
- value
- String
Egy átalakítandó számot tartalmazó sztring.
- provider
- IFormatProvider
Egy objektum, amely kultúraspecifikus formázási információkat tartalmaz a fájlról value.
Válaszok
A paraméterben value megadott számmal egyenértékű érték.
Megvalósítás
Kivételek
value az null.
value formátuma nem megfelelő.
Példák
Az alábbi példák két módszert mutatnak a tilde (~) negatív formázási jelként való definiálására BigInteger . Vegye figyelembe, hogy ha az BigInteger értékeket az eredeti sztringekkel megegyező formátumban szeretné megjeleníteni, a kódnak meg kell hívnia a BigInteger.ToString(IFormatProvider) metódust, és át kell adnia a NumberFormatInfo formázási információkat biztosító objektumot.
Az első példa egy olyan osztályt határoz meg, amely implementálja IFormatProvider és használja a GetFormat metódust a NumberFormatInfo formázási információkat biztosító objektum visszaadásához.
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
Az BigInteger objektumok ezután a következő kóddal hozhatók létre:
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)
A második példa egyszerűbb. Átadja a NumberFormatInfo formázási információkat tartalmazó objektumot a provider paraméternek.
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)
Megjegyzések
A value paraméternek egy szám sztring-ábrázolásának kell lennie az alábbi formában:
[ws][jel]számjegyek[ws]
A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.
| Elem | Leírás |
|---|---|
| Ws | Nem kötelező üres terület. |
| jel | Nem kötelező jel. Az érvényes jelkarakterek az objektum metódusa NumberFormatInfo.NegativeSign által visszaadott objektum tulajdonságai és NumberFormatInfo.PositiveSign tulajdonságai alapján NumberFormatInfo vannak meghatározvaprovider.GetFormat |
| Számjegy | Számjegyek sorozata 0 és 9 között. A rendszer figyelmen kívül hagyja a kezdő nullákat. |
Note
A paraméter által megadott sztringet a value rendszer a stílus használatával értelmezi NumberStyles.Integer . Nem tartalmazhat csoportelválasztókat vagy decimális elválasztójeleket, és nem rendelkezhet tizedes törtrészrel.
Important
Ha a Parse metódussal egy olyan érték sztringképének BigInteger kerekítésére használja, amelyet a ToString metódus adott ki, a metódust az "R" formátumjelölővel kell használnia BigInteger.ToString(String) az BigInteger érték sztring-ábrázolásának létrehozásához. Ellenkező esetben a BigInteger sztringábrázolás csak az eredeti érték 50 legjelentősebb számjegyét őrzi meg, és az adatok elveszhetnek, amikor a metódust Parse használja az BigInteger érték visszaállítására.
A provider paraméter egy IFormatProvider implementáció, amelynek GetFormat metódusa egy NumberFormatInfo olyan objektumot ad vissza, amely kultúraspecifikus formázási információkat biztosít.
Parse(String, IFormatProvider) A metódus meghívásakor meghívja a provider paraméter metódusátGetFormat, és átad neki egyType, a típust NumberFormatInfo képviselő objektumot. A GetFormat metódus ezután visszaadja azt az NumberFormatInfo objektumot, amely információt nyújt a value paraméter formátumáról. A paraméter háromféleképpen provider biztosít egyéni formázási információkat az elemzési művelethez:
Átadhat egy CultureInfo objektumot, amely a formázási információkat tartalmazó kultúrát jelöli. A GetFormat metódus visszaadja azt az NumberFormatInfo objektumot, amely numerikus formázási információkat biztosít az adott kultúrához.
Átadhatja a tényleges NumberFormatInfo objektumot, amely numerikus formázási információkat biztosít. (A implementációja GetFormat csak önmagát adja vissza.)
Átadhat egy egyéni objektumot, amely implementálja a elemet IFormatProvider. A GetFormat metódus példányosítja és visszaadja a NumberFormatInfo formázási információkat biztosító objektumot.
Ha provider igennull, akkor a rendszer a jelenlegi kultúra objektuma alapján értelmezi a value formázástNumberFormatInfo.
Lásd még
A következőre érvényes:
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
Több karakterből álló elemet elemez egy értékben.
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
Paraméterek
- s
- ReadOnlySpan<Char>
Az elemezni kívánt karakterek száma.
- provider
- IFormatProvider
Egy objektum, amely kultúraspecifikus formázási információkat tartalmaz a fájlról s.
Válaszok
Az elemzés seredménye.
Megvalósítás
A következőre érvényes:
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Forrás:
- BigInteger.cs
public:
static System::Numerics::BigInteger Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As BigInteger
Paraméterek
- utf8Text
- ReadOnlySpan<Byte>
- provider
- IFormatProvider
Válaszok
Megvalósítás
A következőre érvényes:
Parse(String)
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
Egy szám sztringképét az azzal egyenértékűvé BigInteger alakítja.
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
Paraméterek
- value
- String
Az átalakítandó számot tartalmazó sztring.
Válaszok
A paraméterben value megadott számmal egyenértékű érték.
Kivételek
value az null.
value formátuma nem megfelelő.
Példák
Az alábbi példa két Parse(String) objektum példányosítására használja a BigInteger metódust. Megszorozza az egyes objektumokat egy másik számmal, majd meghívja a Compare metódust a két érték közötti kapcsolat meghatározásához.
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.
Megjegyzések
A value paraméternek egy szám sztring-ábrázolásának kell lennie az alábbi formában.
[ws][jel]számjegyek[ws]
A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.
| Elem | Leírás |
|---|---|
| Ws | Nem kötelező üres terület. |
| jel | Nem kötelező jel. Az érvényes jelkarakterek az NumberFormatInfo.NegativeSign aktuális kultúra és NumberFormatInfo.PositiveSign tulajdonságok alapján vannak meghatározva. |
| Számjegy | Számjegyek sorozata 0 és 9 között. A rendszer figyelmen kívül hagyja a kezdő nullákat. |
Note
A paraméter által megadott sztringet a value rendszer a stílus használatával értelmezi NumberStyles.Integer . Nem tartalmazhat csoportelválasztókat vagy decimális elválasztójeleket, és nem rendelkezhet tizedes törtrészrel.
A value paraméter elemzése az aktuális rendszerkultúrához inicializált objektum formázási információinak System.Globalization.NumberFormatInfo használatával történik. További információért lásd NumberFormatInfo.CurrentInfo. Ha egy sztringet egy adott kultúra formázási információinak használatával szeretne elemezni, használja a metódust Parse(String, IFormatProvider) .
Important
Ha a Parse metódussal egy olyan érték sztringképének BigInteger kerekítésére használja, amelyet a ToString metódus adott ki, a metódust az "R" formátumjelölővel kell használnia BigInteger.ToString(String) az BigInteger érték sztring-ábrázolásának létrehozásához. Ellenkező esetben a BigInteger sztringábrázolás csak az eredeti érték 50 legjelentősebb számjegyét őrzi meg, és az adatok elveszhetnek, amikor a metódust Parse használja az BigInteger érték visszaállítására.
Lásd még
A következőre érvényes:
Parse(String, NumberStyles)
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
- Forrás:
- BigInteger.cs
Egy adott stílusban lévő szám sztringképét a megfelelőre BigInteger alakítja át.
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
Paraméterek
- value
- String
Egy átalakítandó számot tartalmazó sztring.
- style
- NumberStyles
A számbavételi értékek bitenkénti kombinációja, amely megadja a megengedett formátumot value.
Válaszok
A paraméterben value megadott számmal egyenértékű érték.
Kivételek
style nem érték NumberStyles .
-vagy-
styleA AllowHexSpecifier egy másik értékkel együtt tartalmazza a HexNumber jelölőt.
value az null.
value nem felel meg a megadott bemeneti mintának NumberStyles.
Példák
Az alábbi példa a Parse(String, NumberStyles) metódushoz intézett hívásokat mutatja be a paraméter több lehetséges értékével style . Bemutatja, hogyan értelmezhet egy sztringet hexadecimális értékként, és hogyan tilthatja le a szóközöket és a jelszimbólumokat.
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.
Megjegyzések
A style paraméter meghatározza azokat a stíluselemeket (például a szóközt, a pozitív vagy negatív jelszimbólumot, a csoportelválasztó szimbólumot vagy a tizedesjelet), amelyek a paraméterben value engedélyezve vannak az elemzési művelet sikeres végrehajtásához.
styles az enumerálás bitjelölőinek kombinációjának NumberStyles kell lennie. A style paraméter hasznossá teszi ezt a metódust, ha value egy hexadecimális érték sztring-ábrázolását tartalmazza, ha az általuk value képviselt számrendszer (decimális vagy hexadecimális) csak futásidőben ismert, vagy ha ki szeretné tiltani a szóközt vagy a jel szimbólumát.value
Az értéktől stylefüggően a paraméter a value következő elemeket tartalmazhatja:
[ws][$][jel][számjegyek;]számjegyek[.fractional_digits][E[jel]exponential_digits][ws]
Ha style tartalmazza NumberStyles.AllowHexSpecifier, a paraméter a value következő elemeket tartalmazhatja:
[ws]hexdigits[ws]
A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.
| Elem | Leírás |
|---|---|
| Ws | Nem kötelező üres terület. Ha a jelölőt is magában foglaljavalue, az elején styleNumberStyles.AllowLeadingWhite fehér terület jelenhet meg, és a jelölőt is tartalmazó value terület végén styleNumberStyles.AllowTrailingWhite jelenhet meg. |
| $ | Kultúraspecifikus pénznemszimbólum. A sztringben elfoglalt helyét az NumberFormatInfo.CurrencyNegativePattern aktuális kultúra és NumberFormatInfo.CurrencyPositivePattern tulajdonságai határozzák meg. Az aktuális kultúra pénznemszimbóluma akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowCurrencySymbol . |
| jel | Nem kötelező jel. A jel akkor jelenhet meg, ha tartalmazza a jelölőt, és a végén, value ha style tartalmazza a jelölőtNumberStyles.AllowLeadingSign.valuestyleNumberStyles.AllowTrailingSign Zárójelekkel negatív értéket jelölhet value , ha style a NumberStyles.AllowParentheses jelölőt is tartalmazza. |
|
Számjegy fractional_digits exponential_digits |
Számjegyek sorozata 0 és 9 között. A fractional_digits esetében csak a 0 számjegy érvényes. |
| , | Kultúraspecifikus csoportelválasztó szimbólum. A jelenlegi kultúra csoportelválasztója akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowThousands . |
| . | Kultúraspecifikus tizedesjel. Az aktuális kultúra tizedesjele akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowDecimalPoint . A sikeres elemzési művelethez csak a 0 számjegy jelenhet meg tört számjegyként; ha fractional_digits bármilyen más számjegyet is tartalmaz, FormatException akkor a karaktert a függvény eldobja. |
| E | Az "e" vagy "E" karakter, amely azt jelzi, hogy az érték exponenciális (tudományos) jelölésben jelenik meg. A value paraméter exponenciális jelöléssel jelölhet egy számot, ha style tartalmazza a jelölőt NumberStyles.AllowExponent . |
| hexdigits | Hexadecimális számjegyek sorozata 0 és f között, vagy 0 és F között. |
Note
A befejező NUL (U+0000) karaktereket s az elemzési művelet figyelmen kívül hagyja, függetlenül az style argumentum értékétől.
A csak számjegyekkel rendelkező sztringek (amelyek megfelelnek a NumberStyles.None stílusnak) mindig sikeresen elemezhetők. A fennmaradó NumberStyles tagok többsége a bemeneti sztringben esetleg jelen lévő, de nem kötelező elemeket szabályozza. Az alábbi táblázat azt mutatja be, hogy az egyes NumberStyles tagok hogyan befolyásolják a benne található valueelemeket.
NumberStyles Érték |
A számjegyeken kívül engedélyezett value elemek |
|---|---|
| None | Csak a számjegyek elem. |
| AllowDecimalPoint | A tizedesjel (.) és a törtjegyű elemek. |
| AllowExponent | Az "e" vagy "E" karakter, amely exponenciális jelölést jelez, valamint exponential_digits. |
| AllowLeadingWhite | A ws elem az elején value. |
| AllowTrailingWhite | A ws elem a végén value. |
| AllowLeadingSign | A jelelem a következő elején: .value |
| AllowTrailingSign | A jelelem a végén value. |
| AllowParentheses | A numerikus értéket tartalmazó zárójelek formájában megjelenő jelelem . |
| AllowThousands | A csoportelválasztó (,) elem. |
| AllowCurrencySymbol | A pénznem ($) elem. |
| Currency | Minden elem.
value Nem jelölhet azonban hexadecimális számot vagy exponenciális számokat. |
| Float | A ws elem a kezdő vagy a végén value, a jel elején value, és a decimális pont (.) szimbólum. A value paraméter exponenciális jelölést is használhat. |
| Number | A ws, signcsoportelválasztó (,) és decimális (.) elemek. |
| Any | Minden elem.
value A hexadecimális szám azonban nem jelölhető. |
Important
Ha a Parse metódussal egy olyan érték sztringképének BigInteger kerekítésére használja, amelyet a ToString metódus adott ki, a metódust az "R" formátumjelölővel kell használnia BigInteger.ToString(String) az BigInteger érték sztring-ábrázolásának létrehozásához. Ellenkező esetben a BigInteger sztringábrázolás csak az eredeti érték 50 legjelentősebb számjegyét őrzi meg, és az adatok elveszhetnek, amikor a metódust Parse használja az BigInteger érték visszaállítására.
A többi NumberStyles értéktől eltérően, amelyek lehetővé teszik, de nem követelik meg bizonyos stíluselemek valuejelenlétét, a NumberStyles.AllowHexSpecifier stílusérték azt jelenti, hogy az egyes numerikus karakterek value mindig hexadecimális karakterekként vannak értelmezve. Az érvényes hexadecimális karakterek: 0-9, A-F és a-f. A paraméterrel style kombinálható egyéb jelzők a következők NumberStyles.AllowLeadingWhite : és NumberStyles.AllowTrailingWhite. (Az NumberStyles enumerálás egy összetett számstílust tartalmaz, HexNumberamely a szóközjeleket is tartalmazza.)
Note
Ha value egy hexadecimális szám sztringképe, akkor nem előzhető meg olyan díszítés (például 0x vagy &h), amely hexadecimális számként különbözteti meg. Ez a konvertálás sikertelenségéhez vezet.
Ha value hexadecimális sztring, akkor a Parse(String, NumberStyles) metódus negatív számként értelmezi value a két egymást kiegészítő ábrázolással tárolt számot, ha az első két hexadecimális számjegye nagyobb vagy egyenlő 0x80. Más szóval a metódus az első bájt value legmagasabb rendű bitét jelbitként értelmezi. Annak érdekében, hogy a hexadecimális sztring helyesen pozitív számként legyen értelmezve, az első számjegynek value nulla értékűnek kell lennie. A metódus például negatív értékként értelmezi 0x80 , de vagy pozitív értékként értelmezi 0x0800x0080 . Az alábbi példa a negatív és pozitív értékeket képviselő hexadecimális sztringek közötti különbséget mutatja be.
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.
A value paraméter elemzése az aktuális rendszerkultúrához inicializált objektum formázási információinak NumberFormatInfo használatával történik. Annak a kultúrának a megadásához, amelynek formázási adatait az elemzési művelethez használják, hívja meg a túlterhelést Parse(String, NumberStyles, IFormatProvider) .