BigInteger.Parse Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Converteert de tekenreeksweergave van een getal naar het BigInteger equivalent ervan.
Overloads
| Name | Description |
|---|---|
| Parse(String) |
Converteert de tekenreeksweergave van een getal naar het BigInteger equivalent ervan. |
| Parse(String, NumberStyles) |
Converteert de tekenreeksweergave van een getal in een opgegeven stijl naar het BigInteger equivalent ervan. |
| Parse(String, IFormatProvider) |
Converteert de tekenreeksweergave van een getal in een opgegeven cultuurspecifieke notatie naar het BigInteger equivalent ervan. |
| Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Converteert de weergave van een getal, opgenomen in de opgegeven alleen-lezenreeks van tekens, in een opgegeven stijl naar het BigInteger equivalent ervan. |
| Parse(String, NumberStyles, IFormatProvider) |
Converteert de tekenreeksweergave van een getal in een opgegeven stijl en cultuurspecifieke notatie naar het BigInteger equivalent ervan. |
Parse(String)
Converteert de tekenreeksweergave van een getal naar het BigInteger equivalent ervan.
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
Parameters
- value
- String
Een tekenreeks die het getal bevat dat moet worden geconverteerd.
Retouren
Een waarde die gelijk is aan het getal dat is opgegeven in de value parameter.
Uitzonderingen
value is null.
value heeft niet de juiste indeling.
Voorbeelden
In het volgende voorbeeld wordt de Parse(String) methode gebruikt om twee BigInteger objecten te instantiëren. Het vermenigvuldigt elk object met een ander getal en roept vervolgens de methode aan om de Compare relatie tussen de twee waarden te bepalen.
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.
Opmerkingen
De value parameter moet de tekenreeksweergave van een getal zijn in de volgende vorm.
[ws][teken]digits[ws]
Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.
| Element | Beschrijving |
|---|---|
| Ws | Optionele witruimte. |
| ondertekenen | Een optioneel teken. Geldige tekens worden bepaald door de NumberFormatInfo.NegativeSign en NumberFormatInfo.PositiveSign eigenschappen van de huidige cultuur. |
| Cijfers | Een reeks cijfers tussen 0 en 9. Voorloopnullen worden genegeerd. |
Note
De tekenreeks die door de value parameter is opgegeven, wordt geïnterpreteerd met behulp van de NumberStyles.Integer stijl. Het mag geen groepsscheidingstekens of decimaalteken bevatten en kan geen decimaal gedeelte bevatten.
De value parameter wordt geparseerd met behulp van de opmaakgegevens in een System.Globalization.NumberFormatInfo object dat is geïnitialiseerd voor de huidige systeemcultuur. Zie NumberFormatInfo.CurrentInfo voor meer informatie. Als u een tekenreeks wilt parseren met behulp van de opmaakgegevens van een specifieke cultuur, gebruikt u de Parse(String, IFormatProvider) methode.
Important
Als u de Parse methode gebruikt om de tekenreeksweergave te afronden van een BigInteger waarde die door de ToString methode is uitgevoerd, moet u de BigInteger.ToString(String) methode gebruiken met de notatie 'R' om de tekenreeksweergave van de BigInteger waarde te genereren. Anders blijft de tekenreeksweergave van de BigInteger 50 belangrijkste cijfers van de oorspronkelijke waarde behouden en kunnen gegevens verloren gaan wanneer u de Parse methode gebruikt om de BigInteger waarde te herstellen.
Zie ook
Van toepassing op
Parse(String, NumberStyles)
Converteert de tekenreeksweergave van een getal in een opgegeven stijl naar het BigInteger equivalent ervan.
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
Parameters
- value
- String
Een tekenreeks die een getal bevat dat moet worden geconverteerd.
- style
- NumberStyles
Een bitsgewijze combinatie van de opsommingswaarden die de toegestane notatie van value.
Retouren
Een waarde die gelijk is aan het getal dat is opgegeven in de value parameter.
Uitzonderingen
style is geen NumberStyles waarde.
– of –
style bevat de AllowHexSpecifier of HexNumber vlag samen met een andere waarde.
value is null.
value voldoet niet aan het invoerpatroon dat is opgegeven door NumberStyles.
Voorbeelden
In het volgende voorbeeld ziet u aanroepen naar de Parse(String, NumberStyles) methode met verschillende mogelijke waarden voor de style parameter. Het laat zien hoe u een tekenreeks interpreteert als een hexadecimale waarde en hoe u spaties en tekensymbolen niet toekent.
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.
Opmerkingen
De style parameter definieert de stijlelementen (zoals witruimte, het positieve of negatieve tekensymbool, het teken voor het groepsscheidingsteken of het decimale puntsymbool) die zijn toegestaan in de value parameter om de parseringsbewerking te laten slagen.
styles moet een combinatie zijn van bitvlagmen uit de NumberStyles opsomming. De style parameter maakt deze methode overbelast wanneer value de tekenreeksweergave van een hexadecimale waarde bevat, wanneer het getalsysteem (decimaal of hexadecimaal) dat wordt vertegenwoordigd value door alleen tijdens runtime bekend is, of wanneer u witruimte of een tekensymbool valuewilt weigeren.
Afhankelijk van de waarde van style, kan de value parameter de volgende elementen bevatten:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
Indien style opgenomen NumberStyles.AllowHexSpecifier, kan de value parameter de volgende elementen bevatten:
[ws]hexdigits[ws]
Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.
| Element | Beschrijving |
|---|---|
| Ws | Optionele witruimte. Witruimte kan aan het begin van value de NumberStyles.AllowLeadingWhitestyle vlag worden weergegeven en kan aan het einde van value de vlag worden weergegeven.styleNumberStyles.AllowTrailingWhite |
| $ | Een cultuurspecifiek valutasymbool. De positie in de tekenreeks wordt gedefinieerd door de NumberFormatInfo.CurrencyNegativePattern en NumberFormatInfo.CurrencyPositivePattern eigenschappen van de huidige cultuur. Het valutasymbool van de huidige cultuur kan worden weergegeven als valuestyle deze de NumberStyles.AllowCurrencySymbol vlag bevat. |
| ondertekenen | Een optioneel teken. Het teken kan aan het begin van value de vlag worden weergegeven als style deze de NumberStyles.AllowLeadingSign vlag bevat en kan worden weergegeven aan het einde van value de vlag.styleNumberStyles.AllowTrailingSign Haakjes kunnen worden gebruikt value om een negatieve waarde aan te geven als style deze de NumberStyles.AllowParentheses vlag bevat. |
|
Cijfers fractional_digits exponential_digits |
Een reeks cijfers van 0 tot en met 9. Voor fractional_digits is alleen het cijfer 0 geldig. |
| , | Een cultuurspecifiek groepsscheidingsteken. Het groepsscheidingsteken van de huidige cultuur kan worden weergegeven als valuestyle deze de NumberStyles.AllowThousands vlag bevat. |
| . | Een cultuurspecifiek decimaalteken. Het decimale puntsymbool van de huidige cultuur kan worden weergegeven value als style deze de NumberStyles.AllowDecimalPoint vlag bevat. Alleen het cijfer 0 kan worden weergegeven als een breukcijfer om de parseringsbewerking te laten slagen; als fractional_digits een ander cijfer bevat, wordt er een FormatException gegenereerd. |
| E | Het teken "e" of "E", dat aangeeft dat de waarde wordt weergegeven in exponentiële (wetenschappelijke) notatie. De value parameter kan een getal in exponentiële notatie vertegenwoordigen als style deze de NumberStyles.AllowExponent vlag bevat. |
| hexdigits | Een reeks hexadecimale cijfers van 0 tot en met f of 0 tot en met F. |
Note
Alle nultekens (U+0000) s worden genegeerd door de parseringsbewerking, ongeacht de waarde van het style argument.
Een tekenreeks met alleen cijfers (die overeenkomt met de NumberStyles.None stijl) parseert altijd succesvol. De meeste resterende NumberStyles leden bepalen elementen die mogelijk aanwezig zijn, maar die niet aanwezig zijn, in de invoertekenreeks. De volgende tabel geeft aan hoe afzonderlijke NumberStyles leden van invloed zijn op de elementen die aanwezig kunnen zijn in value.
NumberStyles waarde |
Elementen die naast cijfers zijn toegestaan value |
|---|---|
| None | Alleen het cijferelement . |
| AllowDecimalPoint | De decimale puntelementen (.) en fractionele cijfers . |
| AllowExponent | Het teken "e" of "E", dat exponentiële notatie aangeeft, samen met exponential_digits. |
| AllowLeadingWhite | Het ws-element aan het begin van value. |
| AllowTrailingWhite | Het ws-element aan het einde van value. |
| AllowLeadingSign | Het tekenelement aan het begin van value. |
| AllowTrailingSign | Het tekenelement aan het einde van value. |
| AllowParentheses | Het tekenelement in de vorm van haakjes tussen de numerieke waarde. |
| AllowThousands | Het groepsscheidingsteken (,) element. |
| AllowCurrencySymbol | Het valutaelement ($). |
| Currency | Alle elementen.
value Kan echter geen hexadecimaal getal of een getal in exponentiële notatie vertegenwoordigen. |
| Float | Het ws-element aan het begin of einde van value, teken aan het begin van valueen het decimaalteken (.). De value parameter kan ook exponentiële notatie gebruiken. |
| Number | De wselementen , signgroepsscheidingsteken (,) en decimaalteken (.). |
| Any | Alle elementen.
value Kan echter geen hexadecimaal getal vertegenwoordigen. |
Important
Als u de Parse methode gebruikt om de tekenreeksweergave te afronden van een BigInteger waarde die door de ToString methode is uitgevoerd, moet u de BigInteger.ToString(String) methode gebruiken met de notatie 'R' om de tekenreeksweergave van de BigInteger waarde te genereren. Anders blijft de tekenreeksweergave van de BigInteger 50 belangrijkste cijfers van de oorspronkelijke waarde behouden en kunnen gegevens verloren gaan wanneer u de Parse methode gebruikt om de BigInteger waarde te herstellen.
In tegenstelling tot de andere NumberStyles waarden, die toestaan, maar niet vereisen, betekent de aanwezigheid van bepaalde stijlelementen in value, de NumberStyles.AllowHexSpecifier stijlwaarde dat de afzonderlijke numerieke tekens value altijd worden geïnterpreteerd als hexadecimale tekens. Geldige hexadecimale tekens zijn 0-9, A-F en a-f. De enige andere vlaggen die kunnen worden gecombineerd met de style parameter zijn NumberStyles.AllowLeadingWhite en NumberStyles.AllowTrailingWhite. (De NumberStyles opsomming bevat een samengestelde getalstijl, HexNumberdie beide spatievlagmen bevat.)
Note
Als value dit de tekenreeksweergave is van een hexadecimaal getal, kan het niet worden voorafgegaan door een decoratie (zoals 0x of &h) die deze onderscheidt als een hexadecimaal getal. Dit zorgt ervoor dat de conversie mislukt.
Als value een hexadecimale tekenreeks is, interpreteert value de Parse(String, NumberStyles) methode als een negatief getal dat is opgeslagen met behulp van de complementweergave van twee als de eerste twee hexadecimale cijfers groter zijn dan of gelijk zijn aan 0x80. Met andere woorden, de methode interpreteert de hoogste volgorde bit van de eerste byte in value als de teken-bit. Om ervoor te zorgen dat een hexadecimale tekenreeks correct wordt geïnterpreteerd als een positief getal, moet het eerste cijfer een value waarde van nul hebben. De methode interpreteert 0x80 bijvoorbeeld als een negatieve waarde, maar interpreteert een 0x080 of 0x0080 een positieve waarde. In het volgende voorbeeld ziet u het verschil tussen hexadecimale tekenreeksen die negatieve en positieve waarden vertegenwoordigen.
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.
De value parameter wordt geparseerd met behulp van de opmaakgegevens in een NumberFormatInfo object dat is geïnitialiseerd voor de huidige systeemcultuur. Als u de cultuur wilt opgeven waarvan de opmaakgegevens worden gebruikt voor de parseringsbewerking, roept u de Parse(String, NumberStyles, IFormatProvider) overbelasting aan.
Zie ook
Van toepassing op
Parse(String, IFormatProvider)
Converteert de tekenreeksweergave van een getal in een opgegeven cultuurspecifieke notatie naar het BigInteger equivalent ervan.
public:
static System::Numerics::BigInteger Parse(System::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
Parameters
- value
- String
Een tekenreeks die een getal bevat dat moet worden geconverteerd.
- provider
- IFormatProvider
Een object dat cultuurspecifieke opmaakinformatie biedt over value.
Retouren
Een waarde die gelijk is aan het getal dat is opgegeven in de value parameter.
Uitzonderingen
value is null.
value heeft niet de juiste indeling.
Voorbeelden
In de volgende voorbeelden ziet u twee manieren om de tilde (~) te definiëren als een negatief teken voor het opmaken van BigInteger waarden. Als u de BigInteger waarden in dezelfde indeling als de oorspronkelijke tekenreeksen wilt weergeven, moet de code de BigInteger.ToString(IFormatProvider) methode aanroepen en doorgeven aan het NumberFormatInfo object dat opmaakinformatie biedt.
In het eerste voorbeeld wordt een klasse gedefinieerd die de methode implementeert IFormatProvider en gebruikt om het NumberFormatInfo object te retourneren dat opmaakinformatie GetFormat biedt.
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
Een BigInteger object kan vervolgens worden geïnstantieerd met de volgende code:
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)
Het tweede voorbeeld is eenvoudiger. Hiermee wordt het NumberFormatInfo object doorgegeven dat opmaakgegevens aan de provider parameter levert.
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)
Opmerkingen
De value parameter moet de tekenreeksweergave van een getal zijn in de volgende vorm:
[ws][teken]digits[ws]
Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.
| Element | Beschrijving |
|---|---|
| Ws | Optionele witruimte. |
| ondertekenen | Een optioneel teken. Geldige tekens worden bepaald door de NumberFormatInfo.NegativeSign en NumberFormatInfo.PositiveSign eigenschappen van het NumberFormatInfo object dat wordt geretourneerd door de methode van GetFormat het provider object. |
| Cijfers | Een reeks cijfers tussen 0 en 9. Voorloopnullen worden genegeerd. |
Note
De tekenreeks die door de value parameter is opgegeven, wordt geïnterpreteerd met behulp van de NumberStyles.Integer stijl. Het mag geen groepsscheidingstekens of decimaalteken bevatten en kan geen decimaal gedeelte bevatten.
Important
Als u de Parse methode gebruikt om de tekenreeksweergave te afronden van een BigInteger waarde die door de ToString methode is uitgevoerd, moet u de BigInteger.ToString(String) methode gebruiken met de notatie 'R' om de tekenreeksweergave van de BigInteger waarde te genereren. Anders blijft de tekenreeksweergave van de BigInteger 50 belangrijkste cijfers van de oorspronkelijke waarde behouden en kunnen gegevens verloren gaan wanneer u de Parse methode gebruikt om de BigInteger waarde te herstellen.
De provider parameter is een IFormatProvider implementatie waarvan de GetFormat methode een NumberFormatInfo object retourneert dat cultuurspecifieke opmaakinformatie biedt. Wanneer de Parse(String, IFormatProvider) methode wordt aangeroepen, wordt de methode van GetFormat de provider parameter aangeroepen en doorgegeven aan een Type object dat het NumberFormatInfo type vertegenwoordigt. De GetFormat methode retourneert vervolgens het NumberFormatInfo object dat informatie biedt over de indeling van de value parameter. Er zijn drie manieren om de provider parameter te gebruiken om aangepaste opmaakgegevens op te geven voor de parseringsbewerking:
U kunt een CultureInfo object doorgeven dat de cultuur vertegenwoordigt die opmaakinformatie levert. De GetFormat methode retourneert het NumberFormatInfo object dat numerieke opmaakinformatie biedt voor die cultuur.
U kunt het werkelijke NumberFormatInfo object doorgeven dat numerieke opmaakgegevens biedt. (De implementatie van GetFormat alleen retourneert zichzelf.)
U kunt een aangepast object doorgeven dat wordt geïmplementeerd IFormatProvider. De GetFormat methode instantieert en retourneert het NumberFormatInfo object dat opmaakinformatie biedt.
Als provider dat het is null, wordt de opmaak value geïnterpreteerd op basis van het NumberFormatInfo object van de huidige cultuur.
Zie ook
Van toepassing op
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
Converteert de weergave van een getal, opgenomen in de opgegeven alleen-lezenreeks van tekens, in een opgegeven stijl naar het BigInteger equivalent ervan.
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
Parameters
- value
- ReadOnlySpan<Char>
Een alleen-lezen reeks tekens die het te converteren getal bevat.
- style
- NumberStyles
Een bitsgewijze combinatie van de opsommingswaarden die de toegestane notatie van value.
- provider
- IFormatProvider
Een object dat cultuurspecifieke opmaakinformatie biedt over value.
Retouren
Een waarde die gelijk is aan het getal dat is opgegeven in de value parameter.
Uitzonderingen
style is geen NumberStyles waarde.
– of –
style bevat de AllowHexSpecifier of HexNumber vlag samen met een andere waarde.
value is null.
value voldoet niet aan het invoerpatroon dat is opgegeven door style.
Opmerkingen
De style parameter definieert de stijlelementen (zoals witruimte, het positieve of negatieve tekensymbool, het teken voor het groepsscheidingsteken of het decimale puntsymbool) die zijn toegestaan in de value parameter om de parseringsbewerking te laten slagen.
styles moet een combinatie zijn van bitvlagmen uit de NumberStyles opsomming. De style parameter maakt deze methode overbelasting nuttig wanneer value de weergave van een hexadecimale waarde bevat, wanneer het getalsysteem (decimaal of hexadecimaal) dat wordt vertegenwoordigd door value alleen tijdens runtime bekend is, of wanneer u witruimte of een tekensymbool valuewilt weigeren.
Afhankelijk van de waarde van style, kan de value parameter de volgende elementen bevatten:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
Als style dit is opgenomen NumberStyles.AllowHexSpecifier, kan de value parameter de volgende elementen bevatten:
[ws]hexdigits[ws]
Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.
| Element | Beschrijving |
|---|---|
| Ws | Optionele witruimte. Witruimte kan aan het begin van value de NumberStyles.AllowLeadingWhitestyle vlag worden weergegeven en kan aan het einde van value de vlag worden weergegeven.styleNumberStyles.AllowTrailingWhite |
| $ | Een cultuurspecifiek valutasymbool. De positie ervan value wordt gedefinieerd door de NumberFormatInfo.CurrencyNegativePattern en NumberFormatInfo.CurrencyPositivePattern eigenschappen van de cultuur die wordt aangegeven door de provider parameter. Het valutasymbool van de huidige cultuur kan worden weergegeven als valuestyle deze de NumberStyles.AllowCurrencySymbol vlag bevat. |
| ondertekenen | Een optioneel teken. Het teken kan aan het begin van value de vlag worden weergegeven als style deze de NumberStyles.AllowLeadingSign vlag bevat en kan worden weergegeven aan het einde van value de vlag.styleNumberStyles.AllowTrailingSign Haakjes kunnen worden gebruikt value om een negatieve waarde aan te geven als style deze de NumberStyles.AllowParentheses vlag bevat. |
|
Cijfers fractional_digits exponential_digits |
Een reeks cijfers van 0 tot en met 9. Voor fractional_digits is alleen het cijfer 0 geldig. |
| , | Een cultuurspecifiek groepsscheidingsteken. Het groepsscheidingsteken van de cultuur die is opgegeven door provider , kan worden weergegeven als valuestyle deze de NumberStyles.AllowThousands vlag bevat. |
| . | Een cultuurspecifiek decimaalteken. Het decimaalteken van de cultuur die door is provider aangewezen, kan worden weergegeven als valuestyle deze de NumberStyles.AllowDecimalPoint vlag bevat. Alleen het cijfer 0 kan worden weergegeven als een breukcijfer om de parseringsbewerking te laten slagen; als fractional_digits een ander cijfer bevat, wordt er een FormatException gegenereerd. |
| E | Het teken "e" of "E", dat aangeeft dat de waarde wordt weergegeven in exponentiële (wetenschappelijke) notatie. De value parameter kan een getal in exponentiële notatie vertegenwoordigen als style deze de NumberStyles.AllowExponent vlag bevat. |
| hexdigits | Een reeks hexadecimale cijfers van 0 tot en met f of 0 tot en met F. |
Note
Alle nultekens (U+0000) s worden genegeerd door de parseringsbewerking, ongeacht de waarde van het style argument.
Een value met alleen cijfers (die overeenkomt met de NumberStyles.None stijl) parseert altijd succesvol. De meeste resterende NumberStyles leden bepalen de elementen die aanwezig kunnen zijn, maar die niet aanwezig hoeven te zijn, in value. De volgende tabel geeft aan hoe afzonderlijke NumberStyles leden van invloed zijn op de elementen die aanwezig kunnen zijn in value.
| NumberStyles-waarde | Elementen die naast cijfers in waarde zijn toegestaan |
|---|---|
| None | Alleen het cijferelement . |
| AllowDecimalPoint | De decimale puntelementen (.) en fractionele cijfers . |
| AllowExponent | Het teken "e" of "E", dat een exponentiële notatie aangeeft. samen met exponential_digits. |
| AllowLeadingWhite | Het ws-element aan het begin van value. |
| AllowTrailingWhite | Het ws-element aan het einde van value. |
| AllowLeadingSign | Het tekenelement aan het begin van value. |
| AllowTrailingSign | Het tekenelement aan het einde van value. |
| AllowParentheses | Het tekenelement in de vorm van haakjes tussen de numerieke waarde. |
| AllowThousands | Het groepsscheidingsteken (,) element. |
| AllowCurrencySymbol | Het valutaelement ($). |
| Currency | Alle elementen.
value Kan echter geen hexadecimaal getal of een getal in exponentiële notatie vertegenwoordigen. |
| Float | Het ws-element aan het begin of einde van value, teken aan het begin van valueen het decimaalteken (.). De value parameter kan ook exponentiële notatie gebruiken. |
| Number | De wselementen , signgroepsscheidingsteken (,) en decimaalteken (.). |
| Any | Alle elementen.
value Kan echter geen hexadecimaal getal vertegenwoordigen. |
In tegenstelling tot de andere NumberStyles waarden, die wel de aanwezigheid van bepaalde stijlelementen valuevereisen, betekent de NumberStyles.AllowHexSpecifier stijlwaarde dat de afzonderlijke numerieke tekens value altijd worden geïnterpreteerd als hexadecimale tekens. Geldige hexadecimale tekens zijn 0-9, A-F en a-f. De enige andere vlaggen die kunnen worden gecombineerd met de style parameter zijn NumberStyles.AllowLeadingWhite en NumberStyles.AllowTrailingWhite. (De NumberStyles opsomming bevat een samengestelde getalstijl, HexNumberdie beide spatievlagmen bevat.)
De provider parameter is een IFormatProvider implementatie. De GetFormat methode retourneert een NumberFormatInfo object dat cultuurspecifieke informatie biedt over de indeling van value.
provider Dit kan meestal een van de volgende zijn:
Een CultureInfo object dat de cultuur vertegenwoordigt die numerieke opmaakgegevens biedt. De GetFormat methode retourneert het NumberFormatInfo object dat numerieke opmaakgegevens levert.
Een NumberFormatInfo object dat opmaakinformatie biedt. (De implementatie van GetFormat alleen retourneert zichzelf.)
Een aangepast object dat de methode implementeert IFormatProvider en gebruikt om het GetFormatNumberFormatInfo object te instantiëren en te retourneren dat opmaakinformatie biedt.
Als provider dat het is null, wordt het NumberFormatInfo object voor de huidige cultuur gebruikt.
Zie ook
Van toepassing op
Parse(String, NumberStyles, IFormatProvider)
Converteert de tekenreeksweergave van een getal in een opgegeven stijl en cultuurspecifieke notatie naar het BigInteger equivalent ervan.
public:
static System::Numerics::BigInteger Parse(System::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
Parameters
- value
- String
Een tekenreeks die een getal bevat dat moet worden geconverteerd.
- style
- NumberStyles
Een bitsgewijze combinatie van de opsommingswaarden die de toegestane notatie van value.
- provider
- IFormatProvider
Een object dat cultuurspecifieke opmaakinformatie biedt over value.
Retouren
Een waarde die gelijk is aan het getal dat is opgegeven in de value parameter.
Uitzonderingen
style is geen NumberStyles waarde.
– of –
style bevat de AllowHexSpecifier of HexNumber vlag samen met een andere waarde.
value is null.
value voldoet niet aan het invoerpatroon dat is opgegeven door style.
Voorbeelden
In het volgende voorbeeld worden verschillende aanroepen naar de Parse(String, NumberStyles, IFormatProvider) methode uitgevoerd met behulp van verschillende combinaties van waarden voor de style en provider parameters.
// 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.
Een aantal afzonderlijke aanroepen naar de Parse(String, NumberStyles, IFormatProvider) methode geeft een exemplaar van de volgende BigIntegerFormatProvider klasse door, waarmee een tilde (~) wordt gedefinieerd als het negatieve teken.
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
Opmerkingen
De style parameter definieert de stijlelementen (zoals witruimte, het positieve of negatieve tekensymbool, het teken voor het groepsscheidingsteken of het decimale puntsymbool) die zijn toegestaan in de value parameter om de parseringsbewerking te laten slagen.
styles moet een combinatie zijn van bitvlagmen uit de NumberStyles opsomming. De style parameter maakt deze methode overbelast wanneer value de tekenreeksweergave van een hexadecimale waarde bevat, wanneer het getalsysteem (decimaal of hexadecimaal) dat wordt vertegenwoordigd value door alleen tijdens runtime bekend is, of wanneer u witruimte of een tekensymbool valuewilt weigeren.
Afhankelijk van de waarde van style, kan de value parameter de volgende elementen bevatten:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
Als style dit is opgenomen NumberStyles.AllowHexSpecifier, kan de value parameter de volgende elementen bevatten:
[ws]hexdigits[ws]
Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.
| Element | Beschrijving |
|---|---|
| Ws | Optionele witruimte. Witruimte kan aan het begin van value de NumberStyles.AllowLeadingWhitestyle vlag worden weergegeven en kan aan het einde van value de vlag worden weergegeven.styleNumberStyles.AllowTrailingWhite |
| $ | Een cultuurspecifiek valutasymbool. De positie in de tekenreeks wordt gedefinieerd door de NumberFormatInfo.CurrencyNegativePattern en NumberFormatInfo.CurrencyPositivePattern eigenschappen van de cultuur die wordt aangegeven door de provider parameter. Het valutasymbool van de huidige cultuur kan worden weergegeven als valuestyle deze de NumberStyles.AllowCurrencySymbol vlag bevat. |
| ondertekenen | Een optioneel teken. Het teken kan aan het begin van value de vlag worden weergegeven als style deze de NumberStyles.AllowLeadingSign vlag bevat en kan worden weergegeven aan het einde van value de vlag.styleNumberStyles.AllowTrailingSign Haakjes kunnen worden gebruikt value om een negatieve waarde aan te geven als style deze de NumberStyles.AllowParentheses vlag bevat. |
|
Cijfers fractional_digits exponential_digits |
Een reeks cijfers van 0 tot en met 9. Voor fractional_digits is alleen het cijfer 0 geldig. |
| , | Een cultuurspecifiek groepsscheidingsteken. Het groepsscheidingsteken van de cultuur die is opgegeven door provider , kan worden weergegeven als valuestyle deze de NumberStyles.AllowThousands vlag bevat. |
| . | Een cultuurspecifiek decimaalteken. Het decimaalteken van de cultuur die door is provider aangewezen, kan worden weergegeven als valuestyle deze de NumberStyles.AllowDecimalPoint vlag bevat. Alleen het cijfer 0 kan worden weergegeven als een breukcijfer om de parseringsbewerking te laten slagen; als fractional_digits een ander cijfer bevat, wordt er een FormatException gegenereerd. |
| E | Het teken "e" of "E", dat aangeeft dat de waarde wordt weergegeven in exponentiële (wetenschappelijke) notatie. De value parameter kan een getal in exponentiële notatie vertegenwoordigen als style deze de NumberStyles.AllowExponent vlag bevat. |
| hexdigits | Een reeks hexadecimale cijfers van 0 tot en met f of 0 tot en met F. |
Note
Alle nultekens (U+0000) s worden genegeerd door de parseringsbewerking, ongeacht de waarde van het style argument.
Een tekenreeks met alleen cijfers (die overeenkomt met de NumberStyles.None stijl) parseert altijd succesvol. De meeste resterende NumberStyles leden bepalen elementen die mogelijk aanwezig zijn, maar die niet aanwezig zijn, in de invoertekenreeks. De volgende tabel geeft aan hoe afzonderlijke NumberStyles leden van invloed zijn op de elementen die aanwezig kunnen zijn in value.
| NumberStyles-waarde | Elementen die naast cijfers in waarde zijn toegestaan |
|---|---|
| None | Alleen het cijferelement . |
| AllowDecimalPoint | De decimale puntelementen (.) en fractionele cijfers . |
| AllowExponent | Het teken "e" of "E", dat een exponentiële notatie aangeeft. samen met exponential_digits. |
| AllowLeadingWhite | Het ws-element aan het begin van value. |
| AllowTrailingWhite | Het ws-element aan het einde van value. |
| AllowLeadingSign | Het tekenelement aan het begin van value. |
| AllowTrailingSign | Het tekenelement aan het einde van value. |
| AllowParentheses | Het tekenelement in de vorm van haakjes tussen de numerieke waarde. |
| AllowThousands | Het groepsscheidingsteken (,) element. |
| AllowCurrencySymbol | Het valutaelement ($). |
| Currency | Alle elementen.
value Kan echter geen hexadecimaal getal of een getal in exponentiële notatie vertegenwoordigen. |
| Float | Het ws-element aan het begin of einde van value, teken aan het begin van valueen het decimaalteken (.). De value parameter kan ook exponentiële notatie gebruiken. |
| Number | De wselementen , signgroepsscheidingsteken (,) en decimaalteken (.). |
| Any | Alle elementen.
value Kan echter geen hexadecimaal getal vertegenwoordigen. |
Important
Als u de Parse methode gebruikt om de tekenreeksweergave te afronden van een BigInteger waarde die door de ToString methode is uitgevoerd, moet u de BigInteger.ToString(String) methode gebruiken met de notatie 'R' om de tekenreeksweergave van de BigInteger waarde te genereren. Anders blijft de tekenreeksweergave van de BigInteger 50 belangrijkste cijfers van de oorspronkelijke waarde behouden en kunnen gegevens verloren gaan wanneer u de Parse methode gebruikt om de BigInteger waarde te herstellen.
In tegenstelling tot de andere NumberStyles waarden, die wel de aanwezigheid van bepaalde stijlelementen valuevereisen, betekent de NumberStyles.AllowHexSpecifier stijlwaarde dat de afzonderlijke numerieke tekens value altijd worden geïnterpreteerd als hexadecimale tekens. Geldige hexadecimale tekens zijn 0-9, A-F en a-f. De enige andere vlaggen die kunnen worden gecombineerd met de style parameter zijn NumberStyles.AllowLeadingWhite en NumberStyles.AllowTrailingWhite. (De NumberStyles opsomming bevat een samengestelde getalstijl, HexNumberdie beide spatievlagmen bevat.)
Note
Als value dit de tekenreeksweergave is van een hexadecimaal getal, kan het niet worden voorafgegaan door een decoratie (zoals 0x of &h) die deze onderscheidt als een hexadecimaal getal. Dit zorgt ervoor dat de conversie mislukt.
Als value een hexadecimale tekenreeks is, interpreteert value de Parse(String, NumberStyles) methode als een negatief getal dat is opgeslagen met behulp van de complementweergave van twee als de eerste twee hexadecimale cijfers groter zijn dan of gelijk zijn aan 0x80. Met andere woorden, de methode interpreteert de hoogste volgorde bit van de eerste byte in value als de teken-bit. Om ervoor te zorgen dat een hexadecimale tekenreeks correct wordt geïnterpreteerd als een positief getal, moet het eerste cijfer een value waarde van nul hebben. De methode interpreteert 0x80 bijvoorbeeld als een negatieve waarde, maar interpreteert een 0x080 of 0x0080 een positieve waarde. In het volgende voorbeeld ziet u het verschil tussen hexadecimale tekenreeksen die negatieve en positieve waarden vertegenwoordigen.
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.
De provider parameter is een IFormatProvider implementatie. De GetFormat methode retourneert een NumberFormatInfo object dat cultuurspecifieke informatie biedt over de indeling van value.
provider Dit kan meestal een van de volgende zijn:
Een CultureInfo object dat de cultuur vertegenwoordigt die numerieke opmaakgegevens biedt. De GetFormat methode retourneert het NumberFormatInfo object dat numerieke opmaakgegevens levert.
Een NumberFormatInfo object dat opmaakinformatie biedt. (De implementatie van GetFormat alleen retourneert zichzelf.)
Een aangepast object dat de methode implementeert IFormatProvider en gebruikt om het GetFormatNumberFormatInfo object te instantiëren en te retourneren dat opmaakinformatie biedt.
Als provider dat het is null, wordt het NumberFormatInfo object voor de huidige cultuur gebruikt.