Decimal.Parse Metod

Definition

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet.

Överlagringar

Name Description
Parse(String)

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Parsar ett intervall med UTF-8 tecken till ett värde.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Parsar ett teckenintervall till ett värde.

Parse(String, NumberStyles)

Konverterar strängrepresentationen av ett tal i ett angivet format till dess Decimal motsvarighet.

Parse(String, IFormatProvider)

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet med den angivna kulturspecifika formatinformationen.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Parsar ett intervall med UTF-8 tecken till ett värde.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Konverterar spännviddsrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet.

Parse(String, NumberStyles, IFormatProvider)

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet.

Parse(String)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet.

public:
 static System::Decimal Parse(System::String ^ s);
public static decimal Parse(string s);
static member Parse : string -> decimal
Public Shared Function Parse (s As String) As Decimal

Parametrar

s
String

Strängrepresentationen av talet som ska konverteras.

Returer

Motsvarigheten till talet i s.

Undantag

s är null.

s är inte i rätt format.

s representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue.

Exempel

I följande kodexempel används Parse(String) metoden för att parsa strängrepresentationer av Decimal värden.

string value;
decimal number;
// Parse an integer with thousands separators.
value = "16,523,421";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '16,523,421' converted to 16523421.

// Parse a floating point value with thousands separators
value = "25,162.1378";
number = Decimal.Parse(value);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '25,162.1378' converted to 25162.1378.

// Parse a floating point number with US currency symbol.
value = "$16,321,421.75";
try
{
   number = Decimal.Parse(value);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '$16,321,421.75'.

// Parse a number in exponential notation
value = "1.62345e-02";
try
{
   number = Decimal.Parse(value);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '1.62345e-02'.
// Parse an integer with thousands separators.
let value = "16,523,421"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
//    '16,523,421' converted to 16523421.

// Parse a floating point value with thousands separators
let value = "25,162.1378"
let number = Decimal.Parse value
printfn $"'{value}' converted to {number}."
// Displays:
//    '25,162.1378' converted to 25162.1378.

// Parse a floating point number with US currency symbol.
let value = "$16,321,421.75"
try
    let number = Decimal.Parse value
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '$16,321,421.75'.

// Parse a number in exponential notation
let value = "1.62345e-02"
try
    let number = Decimal.Parse value
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '1.62345e-02'.
Dim value As String
Dim number As Decimal

' Parse an integer with thousands separators. 
value = "16,523,421"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '16,523,421' converted to 16523421.

' Parse a floating point value with thousands separators
value = "25,162.1378"
number = Decimal.Parse(value)
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    '25,162.1378' converted to 25162.1378.

' Parse a floating point number with US currency symbol.
value = "$16,321,421.75"
Try
   number = Decimal.Parse(value)
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
'    Unable to parse '$16,321,421.75'.  

' Parse a number in exponential notation
value = "1.62345e-02"
Try
   number = Decimal.Parse(value)
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '1.62345e-02'.

Kommentarer

Parametern s innehåller ett antal av formuläret:

[ws][sign][siffror,]siffror[.fractional-digits][ws]

Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.

Element Description
Ws Valfritt blanksteg.
signera Ett valfritt tecken.
Siffror En sekvens med siffror mellan 0 och 9.
, En kulturspecifik tusentalsavgränsare.
. Ett kulturspecifikt decimaltecken.
fractional-digits En sekvens med siffror mellan 0 och 9.

Parametern s tolkas med formatet NumberStyles.Number . Det innebär att blanksteg och tusentalsavgränsare tillåts, men inte valutasymboler. Om du vill definiera de element (till exempel valutasymboler, tusentalsavgränsare och blanksteg) som kan finnas i sanvänder du antingen Decimal.Parse(String, NumberStyles) metoden eller Decimal.Parse(String, NumberStyles, IFormatProvider) .

Parametern s parsas med formateringsinformationen i en NumberFormatInfo initierad för den aktuella systemkulturen. Mer information finns i CurrentInfo. Om du vill parsa en sträng med formateringsinformationen för någon annan kultur använder du Decimal.Parse(String, IFormatProvider) metoden eller Decimal.Parse(String, NumberStyles, IFormatProvider) .

Vid behov avrundas s värdet för med avrundning till närmaste.

A Decimal har 29 siffror med precision. Om s representerar ett tal som har fler än 29 siffror, men har en bråkdelsdel och ligger inom intervallet MaxValue för och MinValue, avrundas talet, inte trunkeras, till 29 siffror med avrundning till närmaste.

Om en avgränsare påträffas i parametern s under en parsningsåtgärd och tillämpliga decimaler för valuta eller tal och gruppavgränsare är desamma, förutsätter parsningsåtgärden att avgränsaren är en decimalavgränsare i stället för en gruppavgränsare. Mer information om avgränsare finns i CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoroch NumberGroupSeparator.

Se även

Gäller för

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Parsar ett intervall med UTF-8 tecken till ett värde.

public:
 static System::Decimal Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Decimal>::Parse;
public static decimal Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Decimal

Parametrar

utf8Text
ReadOnlySpan<Byte>

Intervallet för UTF-8 tecken att parsa.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.

Returer

Resultatet av parsning utf8Text.

Implementeringar

Gäller för

Parse(ReadOnlySpan<Char>, IFormatProvider)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Parsar ett teckenintervall till ett värde.

public:
 static System::Decimal Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Decimal>::Parse;
public static decimal Parse(ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Decimal

Parametrar

s
ReadOnlySpan<Char>

Det intervall med tecken som ska parsas.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.

Returer

Resultatet av parsning s.

Implementeringar

Gäller för

Parse(String, NumberStyles)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar strängrepresentationen av ett tal i ett angivet format till dess Decimal motsvarighet.

public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static decimal Parse(string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> decimal
Public Shared Function Parse (s As String, style As NumberStyles) As Decimal

Parametrar

s
String

Strängrepresentationen av talet som ska konverteras.

style
NumberStyles

En bitvis kombination av NumberStyles värden som anger de formatelement som kan finnas i s. Ett typiskt värde att ange är Number.

Returer

Talet Decimal som motsvarar det tal som finns i s enligt angivet av style.

Undantag

s är null.

style är inte ett NumberStyles värde.

-eller-

style är värdet AllowHexSpecifier .

s är inte i rätt format.

s representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue

Exempel

I följande kodexempel används Parse(String, NumberStyles) metoden för att parsa strängrepresentationerna av värden med hjälp av Decimal en-US kultur.

string value;
decimal number;
NumberStyles style;

// Parse string with a floating point value using NumberStyles.None.
value = "8694.12";
style = NumberStyles.None;
try
{
   number = Decimal.Parse(value, style);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '8694.12'.

// Parse string with a floating point value and allow decimal point.
style = NumberStyles.AllowDecimalPoint;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '8694.12' converted to 8694.12.

// Parse string with negative value in parentheses
value = "(1,789.34)";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands |
        NumberStyles.AllowParentheses;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '(1,789.34)' converted to -1789.34.

// Parse string using Number style
value = " -17,623.49 ";
style = NumberStyles.Number;
number = Decimal.Parse(value, style);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    ' -17,623.49 ' converted to -17623.49.
// Parse string with a floating point value using NumberStyles.None.
let value = "8694.12"
let style = NumberStyles.None
try
    let number = Decimal.Parse(value, style)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '8694.12'.

// Parse string with a floating point value and allow decimal point.
let style = NumberStyles.AllowDecimalPoint
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
//    '8694.12' converted to 8694.12.

// Parse string with negative value in parentheses
let value = "(1,789.34)"
let style = 
    NumberStyles.AllowDecimalPoint ||| 
    NumberStyles.AllowThousands ||| 
    NumberStyles.AllowParentheses
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
//    '(1,789.34)' converted to -1789.34.

// Parse string using Number style
let value = " -17,623.49 "
let style = NumberStyles.Number
let number = Decimal.Parse(value, style)
printfn $"'{value}' converted to {number}."
// Displays:
//    ' -17,623.49 ' converted to -17623.49.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles

' Parse string with a floating point value using NumberStyles.None. 
value = "8694.12"
style = NumberStyles.None
Try
   number = Decimal.Parse(value, style)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays:
'    Unable to parse '8694.12'.

' Parse string with a floating point value and allow decimal point. 
style = NumberStyles.AllowDecimalPoint
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    '8694.12' converted to 8694.12.

' Parse string with negative value in parentheses
value = "(1,789.34)"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands Or _
        NumberStyles.AllowParentheses 
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    '(1,789.34)' converted to -1789.34.

' Parse string using Number style
value = " -17,623.49 "
style = NumberStyles.Number
number = Decimal.Parse(value, style)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays:
'    ' -17,623.49 ' converted to -17623.49.

Kommentarer

Parametern style definierar formatelementen (till exempel tusentalsavgränsare, blanksteg och valutasymboler) som tillåts i parametern s för att parsningsåtgärden ska lyckas. Det måste vara en kombination av bitflaggor från NumberStyles uppräkningen. Följande NumberStyles medlemmar stöds inte:

Beroende på värdet för stylekan parametern s innehålla följande element:

[ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.

Element Description
Ws Valfritt blanksteg. Tomt utrymme kan visas i början av s om style innehåller NumberStyles.AllowLeadingWhite flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingWhite flaggan.
$ En kulturspecifik valutasymbol. Dess position i strängen definieras av NumberFormatInfo.CurrencyNegativePattern egenskaperna och NumberFormatInfo.CurrencyPositivePattern för den aktuella kulturen. Den aktuella kulturens valutasymbol kan visas i s om style den NumberStyles.AllowCurrencySymbol innehåller flaggan.
signera Ett valfritt tecken. Tecknet kan visas i början av s om style innehåller NumberStyles.AllowLeadingSign flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingSign flaggan. Parenteser kan användas i s för att ange ett negativt värde om style den NumberStyles.AllowParentheses innehåller flaggan.
Siffror En sekvens med siffror mellan 0 och 9.
, En kulturspecifik tusentalsavgränsare. Den aktuella kulturens tusentalsavgränsare kan visas i s om style den NumberStyles.AllowThousands innehåller flaggan.
. Ett kulturspecifikt decimaltecken. Den aktuella kulturens decimaltecken kan visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan.
fractional-digits En sekvens med siffror mellan 0 och 9. Bråksiffror kan bara visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan.
e Tecknet "e" eller "E", som anger att värdet representeras i exponentiell notation. Parametern s kan representera ett tal i exponentiell notation om style den NumberStyles.AllowExponent innehåller flaggan.

Note

Alla avslutande NUL-tecken (U+0000) i s ignoreras av parsningsåtgärden, oavsett argumentets style värde.

En sträng med endast siffror (vilket motsvarar None formatet) parsar alltid korrekt om den är i typintervallet Decimal . De återstående NumberStyles medlemmarna styr element som kan vara men inte måste finnas i indatasträngen. Följande tabell visar hur enskilda NumberStyles medlemmar påverkar de element som kan finnas i s.

NumberStyles-värde Element som tillåts i s utöver siffror
None Endast elementet digits .
AllowDecimalPoint Elementen . och fractional-digits .
AllowExponent Parametern s kan också använda exponentiell notation. Den här flaggan stöder värden i formuläret siffrorE-siffror; ytterligare flaggor behövs för att parsa strängar med element som positiva eller negativa tecken och decimaltecken.
AllowLeadingWhite WS-elementet i början av s.
AllowTrailingWhite WS-elementet i slutet av s.
AllowLeadingSign Teckenelementet i början av s.
AllowTrailingSign Teckenelementet i slutet av s.
AllowParentheses Teckenelementet i form av parenteser som omger det numeriska värdet.
AllowThousands Elementet , .
AllowCurrencySymbol Elementet $ .
Currency Alla. Parametern s kan inte representera ett hexadecimalt tal eller ett tal i exponentiell notation.
Float WS-elementet i början eller slutet av s, signera i början av soch symbolen.. Parametern s kan också använda exponentiell notation.
Number Elementen ws, sign,och..
Any Alla format, förutom s kan inte representera ett hexadecimalt tal.

Parametern s parsas med formateringsinformationen i ett NumberFormatInfo objekt som initierats för den aktuella systemkulturen. Mer information finns i CurrentInfo.

A Decimal har 29 siffror med precision. Om s representerar ett tal som har fler än 29 siffror, men har en bråkdelsdel och ligger inom intervallet MaxValue för och MinValue, avrundas talet, inte trunkeras, till 29 siffror med avrundning till närmaste.

Om en avgränsare påträffas i parametern s under en parsningsåtgärd, styles innehåller NumberStyles.AllowThousands värdena och NumberStyles.AllowDecimalPoint , och den tillämpliga valutan eller talets decimaler och gruppavgränsare är desamma, förutsätter parsningsåtgärden att avgränsaren är en decimalavgränsare i stället för en gruppavgränsare. Mer information om avgränsare finns i CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoroch NumberGroupSeparator.

Se även

Gäller för

Parse(String, IFormatProvider)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet med den angivna kulturspecifika formatinformationen.

public:
 static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider);
public:
 static System::Decimal Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::Decimal>::Parse;
public static decimal Parse(string s, IFormatProvider provider);
public static decimal Parse(string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> decimal
Public Shared Function Parse (s As String, provider As IFormatProvider) As Decimal

Parametrar

s
String

Strängrepresentationen av talet som ska konverteras.

provider
IFormatProvider

En IFormatProvider som tillhandahåller kulturspecifik parsningsinformation om s.

Returer

Talet Decimal som motsvarar det tal som finns i s enligt angivet av provider.

Implementeringar

Undantag

s är null.

s inte har rätt format.

s representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue.

Exempel

Följande exempel är knappklickshändelsehanteraren för ett webbformulär. Den använder matrisen som returneras av HttpRequest.UserLanguages egenskapen för att fastställa användarens nationella inställningar. Det instansierar sedan ett CultureInfo objekt som motsvarar det nationella språket. Objektet NumberFormatInfo som tillhör objektet CultureInfo skickas sedan till Parse(String, IFormatProvider) metoden för att konvertera användarens indata till ett Decimal värde.

protected void OkToDecimal_Click(object sender, EventArgs e)
{
    string locale;
    decimal number;
    CultureInfo culture;

    // Return if string is empty
    if (String.IsNullOrEmpty(this.inputNumber.Text))
        return;

    // Get locale of web request to determine possible format of number
    if (Request.UserLanguages.Length == 0)
        return;
    locale = Request.UserLanguages[0];
    if (String.IsNullOrEmpty(locale))
        return;

    // Instantiate CultureInfo object for the user's locale
    culture = new CultureInfo(locale);

    // Convert user input from a string to a number
    try
    {
        number = Decimal.Parse(this.inputNumber.Text, culture.NumberFormat);
    }
    catch (FormatException)
    {
        return;
    }
    catch (Exception)
    {
        return;
    }
    // Output number to label on web form
    this.outputNumber.Text = "Number is " + number.ToString();
}
Protected Sub OkToDecimal_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToDecimal.Click
    Dim locale As String
    Dim culture As CultureInfo
    Dim number As Decimal

    ' Return if string is empty
    If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub

    ' Get locale of web request to determine possible format of number
    If Request.UserLanguages.Length = 0 Then Exit Sub
    locale = Request.UserLanguages(0)
    If String.IsNullOrEmpty(locale) Then Exit Sub

    ' Instantiate CultureInfo object for the user's locale
    culture = New CultureInfo(locale)

    ' Convert user input from a string to a number
    Try
        number = Decimal.Parse(Me.inputNumber.Text, culture.NumberFormat)
    Catch ex As FormatException
        Exit Sub
    Catch ex As Exception
        Exit Sub
    End Try

    ' Output number to label on web form
    Me.outputNumber.Text = "Number is " & number.ToString()
End Sub

Kommentarer

Den här överlagringen Parse(String, IFormatProvider) av metoden används ofta för att konvertera text som kan formateras på flera olika sätt till ett Decimal värde. Den kan till exempel användas för att konvertera texten som en användare har angett till en HTML-textruta till ett numeriskt värde.

Parametern s innehåller ett antal av formuläret:

[ws][sign][siffror,]siffror[.fractional-digits][ws]

Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.

Element Description
Ws Valfritt blanksteg.
signera Ett valfritt tecken.
Siffror En sekvens med siffror mellan 0 och 9.
, En kulturspecifik tusentalsavgränsare.
. Ett kulturspecifikt decimaltecken.
fractional-digits En sekvens med siffror mellan 0 och 9.

Parametern s tolkas med formatet NumberStyles.Number . Det innebär att blanksteg och tusentalsavgränsare tillåts, men inte valutasymboler. Om du vill definiera de element (till exempel valutasymboler, tusentalsavgränsare och blanksteg) som kan finnas i sanvänder du Decimal.Parse(String, NumberStyles, IFormatProvider) metoden .

Parametern provider är en IFormatProvider implementering, till exempel ett objekt eller NumberFormatInfo ett CultureInfo objekt. Parametern provider tillhandahåller kulturspecifik information som används vid parsning. Om provider är nullanvänds den aktuella trådkulturen.

Ett Decimal objekt har 29 siffror med precision. Om s representerar ett tal som har fler än 29 siffror, men har en bråkdelsdel och ligger inom intervallet MaxValue för och MinValue, avrundas talet, inte trunkeras, till 29 siffror med avrundning till närmaste.

Om en avgränsare påträffas i parametern s under en parsningsåtgärd och tillämpliga decimaler för valuta eller tal och gruppavgränsare är desamma, förutsätter parsningsåtgärden att avgränsaren är en decimalavgränsare i stället för en gruppavgränsare. Mer information om avgränsare finns i CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoroch NumberGroupSeparator.

Se även

Gäller för

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Parsar ett intervall med UTF-8 tecken till ett värde.

public static decimal Parse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal

Parametrar

utf8Text
ReadOnlySpan<Byte>

Intervallet för UTF-8 tecken att parsa.

style
NumberStyles

En bitvis kombination av talformat som kan finnas i utf8Text.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.

Returer

Resultatet av parsning utf8Text.

Implementeringar

Gäller för

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar spännviddsrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet.

public static decimal Parse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider? provider = default);
public static decimal Parse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Number, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Number, Optional provider As IFormatProvider = Nothing) As Decimal

Parametrar

s
ReadOnlySpan<Char>

Det intervall som innehåller de tecken som representerar talet som ska konverteras.

style
NumberStyles

En bitvis kombination av NumberStyles värden som anger de formatelement som kan finnas i s. Ett typiskt värde att ange är Number.

provider
IFormatProvider

Ett IFormatProvider objekt som tillhandahåller kulturspecifik information om formatet för s.

Returer

Talet Decimal som motsvarar talet som finns i s enligt angivet av style och provider.

Implementeringar

Gäller för

Parse(String, NumberStyles, IFormatProvider)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet.

public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
 static System::Decimal Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Decimal>::Parse;
public static decimal Parse(string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static decimal Parse(string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> decimal
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Decimal

Parametrar

s
String

Strängrepresentationen av talet som ska konverteras.

style
NumberStyles

En bitvis kombination av NumberStyles värden som anger de formatelement som kan finnas i s. Ett typiskt värde att ange är Number.

provider
IFormatProvider

Ett IFormatProvider objekt som tillhandahåller kulturspecifik information om formatet för s.

Returer

Talet Decimal som motsvarar talet som finns i s enligt angivet av style och provider.

Implementeringar

Undantag

s är inte i rätt format.

s representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue.

s är null.

style är inte ett NumberStyles värde.

-eller-

style är värdet AllowHexSpecifier .

Exempel

I följande exempel används en mängd style olika parametrar för provider att parsa strängrepresentationerna av Decimal värden.

string value;
decimal number;
NumberStyles style;
CultureInfo provider;

// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
value = "892 694,12";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
provider = new CultureInfo("fr-FR");

number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '892 694,12' converted to 892694.12.

try
{
   number = Decimal.Parse(value, style, CultureInfo.InvariantCulture);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '892 694,12'.

// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
value = "$6,032.51";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
provider = new CultureInfo("en-GB");

try
{
   number = Decimal.Parse(value, style, provider);
   Console.WriteLine("'{0}' converted to {1}.", value, number);
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse '{0}'.", value);
}
// Displays:
//    Unable to parse '$6,032.51'.

provider = new CultureInfo("en-US");
number = Decimal.Parse(value, style, provider);
Console.WriteLine("'{0}' converted to {1}.", value, number);
// Displays:
//    '$6,032.51' converted to 6032.51.
// Parse string using " " as the thousands separator
// and "," as the decimal separator for fr-FR culture.
let value = "892 694,12"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let provider = CultureInfo "fr-FR"

let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
//    '892 694,12' converted to 892694.12.

try
    let number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '892 694,12'.

// Parse string using "$" as the currency symbol for en-GB and
// en-US cultures.
let value = "$6,032.51"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let provider = CultureInfo "en-GB"

try
    let number = Decimal.Parse(value, style, provider)
    printfn $"'{value}' converted to {number}."
with :? FormatException ->
    printfn $"Unable to parse '{value}'."
// Displays:
//    Unable to parse '$6,032.51'.

let provider = CultureInfo "en-US"
let number = Decimal.Parse(value, style, provider)
printfn $"'{value}' converted to {number}."
// Displays:
//    '$6,032.51' converted to 6032.51.
Dim value As String
Dim number As Decimal
Dim style As NumberStyles
Dim provider As CultureInfo

' Parse string using " " as the thousands separator 
' and "," as the decimal separator for fr-FR culture.
value = "892 694,12"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
provider = New CultureInfo("fr-FR")

number = Decimal.Parse(value, style, provider)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '892 694,12' converted to 892694.12.

Try
   number = Decimal.Parse(value, style, CultureInfo.InvariantCulture)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '892 694,12'.  

' Parse string using "$" as the currency symbol for en-GB and
' en-US cultures.
value = "$6,032.51"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
provider = New CultureInfo("en-GB")

Try
   number = Decimal.Parse(value, style, provider)  
   Console.WriteLine("'{0}' converted to {1}.", value, number)
Catch e As FormatException
   Console.WriteLine("Unable to parse '{0}'.", value)
End Try
' Displays: 
'    Unable to parse '$6,032.51'.

provider = New CultureInfo("en-US")
number = Decimal.Parse(value, style, provider)  
Console.WriteLine("'{0}' converted to {1}.", value, number)
' Displays: 
'    '$6,032.51' converted to 6032.51.

Kommentarer

Parametern style definierar det tillåtna formatet för parametern s för att parsningsåtgärden ska lyckas. Det måste vara en kombination av bitflaggor från NumberStyles uppräkningen. Följande NumberStyles medlemmar stöds inte:

Beroende på värdet för stylekan parametern s innehålla följande element:

[ws][$][sign][digits,]digits[.fractional-digits][e[sign]digits][ws]

Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.

Element Description
$ En kulturspecifik valutasymbol. Dess position i strängen definieras av CurrencyNegativePattern egenskaperna och CurrencyPositivePattern för objektet som NumberFormatInfo returneras av GetFormat parametermetoden provider . Valutasymbolen kan visas i s om style den NumberStyles.AllowCurrencySymbol innehåller flaggan.
Ws Valfritt blanksteg. Tomt utrymme kan visas i början av s om style innehåller NumberStyles.AllowLeadingWhite flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingWhite flaggan.
signera Ett valfritt tecken. Tecknet kan visas i början av s om style innehåller NumberStyles.AllowLeadingSign flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingSign flaggan. Parenteser kan användas i s för att ange ett negativt värde om style den NumberStyles.AllowParentheses innehåller flaggan.
Siffror En sekvens med siffror mellan 0 och 9.
, En kulturspecifik tusentalsavgränsare. Tusentalsavgränsaren för kulturen som definieras av provider kan visas i s om style den NumberStyles.AllowThousands innehåller flaggan.
. Ett kulturspecifikt decimaltecken. Decimaltecknet för kulturen som definieras av provider kan visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan.
fractional-digits En sekvens med siffror mellan 0 och 9. Bråksiffror kan bara visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan.
e Tecknet "e" eller "E", som anger att värdet representeras i exponentiell notation. Parametern s kan representera ett tal i exponentiell notation om style den NumberStyles.AllowExponent innehåller flaggan.

Note

Alla avslutande NUL-tecken (U+0000) i s ignoreras av parsningsåtgärden, oavsett argumentets style värde.

En sträng med endast siffror (vilket motsvarar None formatet) parsar alltid korrekt om den är i typintervallet Decimal . De återstående NumberStyles medlemmarna styr element som kan vara men inte måste finnas i indatasträngen. Följande tabell visar hur enskilda NumberStyles medlemmar påverkar de element som kan finnas i s.

NumberStyles-värde Element som tillåts i s utöver siffror
None Endast elementet digits .
AllowDecimalPoint Elementen . och fractional-digits .
AllowExponent Parametern s kan också använda exponentiell notation. Den här flaggan stöder värden i formuläret siffrorE-siffror; ytterligare flaggor behövs för att parsa strängar med element som positiva eller negativa tecken och decimaltecken.
AllowLeadingWhite WS-elementet i början av s.
AllowTrailingWhite WS-elementet i slutet av s.
AllowLeadingSign Teckenelementet i början av s.
AllowTrailingSign Teckenelementet i slutet av s.
AllowParentheses Teckenelementet i form av parenteser som omger det numeriska värdet.
AllowThousands Elementet , .
AllowCurrencySymbol Elementet $ .
Currency Alla. Parametern s kan inte representera ett hexadecimalt tal eller ett tal i exponentiell notation.
Float WS-elementet i början eller slutet av s, signera i början av soch . Parametern s kan också använda exponentiell notation.
Number Elementen ws, sign, ,och .
Any Alla format, förutom s kan inte representera ett hexadecimalt tal.

Parametern provider är en IFormatProvider implementering, till exempel ett objekt eller NumberFormatInfo ett CultureInfo objekt. Parametern provider tillhandahåller kulturspecifik information som används vid parsning. Om provider är nullanvänds den aktuella trådkulturen.

Ett Decimal objekt har 29 siffror med precision. Om s representerar ett tal som har fler än 29 siffror, men har en bråkdelsdel och ligger inom intervallet MaxValue för och MinValue, avrundas talet, inte trunkeras, till 29 siffror med avrundning till närmaste.

Om en avgränsare påträffas i parametern s under en parsningsåtgärd och tillämpliga decimaler för valuta eller tal och gruppavgränsare är desamma, förutsätter parsningsåtgärden att avgränsaren är en decimalavgränsare i stället för en gruppavgränsare. Mer information om avgränsare finns i CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoroch NumberGroupSeparator.

Se även

Gäller för