Sdílet prostřednictvím


Decimal.Parse Metoda

Definice

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent.

Přetížení

Name Description
Parse(String)

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Parsuje rozsah znaků UTF-8 do hodnoty.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Parsuje rozsah znaků do hodnoty.

Parse(String, NumberStyles)

Převede řetězcové vyjádření čísla v zadaném stylu na jeho Decimal ekvivalent.

Parse(String, IFormatProvider)

Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadaných informací o formátu specifické pro jazykovou verzi.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Parsuje rozsah znaků UTF-8 do hodnoty.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.

Parse(String, NumberStyles, IFormatProvider)

Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.

Parse(String)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede řetězcové vyjádření čísla na jeho Decimal ekvivalent.

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

Parametry

s
String

Řetězcové vyjádření čísla, které chcete převést.

Návraty

Ekvivalent čísla obsaženého v s.

Výjimky

s není ve správném formátu.

s představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue.

Příklady

Následující příklad kódu používá metodu Parse(String) k analýze řetězcové Decimal reprezentace hodnot.

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'.

Poznámky

Parametr s obsahuje číslo formuláře:

[ws] [znaménko] [digits,]digits[.fractional-digits][ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
Ws Volitelné prázdné znaky.
znaménko Volitelné znaménko.
Číslic Posloupnost číslic v rozsahu od 0 do 9
, Symbol oddělovače tisíců specifických pro jazykovou verzi.
. Symbol desetinné čárky specifické pro jazykovou verzi.
desetinné číslice Posloupnost číslic v rozsahu od 0 do 9

Parametr s se interpretuje pomocí NumberStyles.Number stylu. To znamená, že jsou povolené prázdné znaky a oddělovače tisíců, ale symboly měny nejsou. Pokud chcete explicitně definovat prvky (například symboly měny, oddělovače tisíců a prázdné znaky), které mohou být přítomny s, použijte metodu Decimal.Parse(String, NumberStyles) nebo metodu Decimal.Parse(String, NumberStyles, IFormatProvider) .

Parametr s je analyzován pomocí informací o formátování v NumberFormatInfo inicializované pro aktuální systémovou jazykovou verzi. Další informace najdete na webu CurrentInfo. K analýze řetězce pomocí informací o formátování některé jiné jazykové verze použijte metodu nebo Decimal.Parse(String, NumberStyles, IFormatProvider) metoduDecimal.Parse(String, IFormatProvider).

V případě potřeby je hodnota s zaokrouhlená pomocí zaokrouhlení na nejbližší.

A Decimal má 29 číslic přesnosti. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo je zaokrouhleno, není zkráceno, na 29 číslic pomocí zaokrouhlení na nejbližší.

Pokud během operace analýzy je v parametru s zjištěn oddělovač a příslušné oddělovače měny nebo čísla desetinných míst a oddělovače skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupin. Další informace o oddělovači naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.

Viz také

Platí pro

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Parsuje rozsah znaků UTF-8 do hodnoty.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

provider
IFormatProvider

Objekt, který poskytuje informace o utf8Textformátování specifické pro jazykovou verzi .

Návraty

Výsledek analýzy utf8Text.

Implementuje

Platí pro

Parse(ReadOnlySpan<Char>, IFormatProvider)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Parsuje rozsah znaků do hodnoty.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah znaků, které se mají analyzovat.

provider
IFormatProvider

Objekt, který poskytuje informace o sformátování specifické pro jazykovou verzi .

Návraty

Výsledek analýzy s.

Implementuje

Platí pro

Parse(String, NumberStyles)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede řetězcové vyjádření čísla v zadaném stylu na jeho Decimal ekvivalent.

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

Parametry

s
String

Řetězcové vyjádření čísla, které chcete převést.

style
NumberStyles

Bitové kombinace NumberStyles hodnot, které označují prvky stylu, které mohou být přítomny v s. Typická hodnota, kterou je třeba zadat, je Number.

Návraty

Číslo Decimal odpovídající číslu obsaženému v s zadaném parametru style.

Výjimky

style není NumberStyles hodnota.

-nebo-

style AllowHexSpecifier je hodnota.

s není ve správném formátu.

spředstavuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue.

Příklady

Následující příklad kódu používá metodu Parse(String, NumberStyles) k analýze řetězcové Decimal reprezentace hodnot pomocí en-US jazykové verze.

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.

Poznámky

Parametr style definuje prvky stylu (například oddělovače tisíců, prázdné znaky a symboly měny), které jsou v parametru s povolené, aby operace analýzy byla úspěšná. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . Následující NumberStyles členové nejsou podporováni:

V závislosti na hodnotě styleparametru s může obsahovat následující prvky:

[ws] [$] [znaménko] [digits,]digits[.fractional-digits][e[sign]digits][ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
Ws Volitelné prázdné znaky. Prázdné znaky se můžou objevit na začátku s , pokud style příznak obsahuje NumberStyles.AllowLeadingWhite , a může se zobrazit na konci s , pokud style příznak NumberStyles.AllowTrailingWhite obsahuje.
$ Symbol měny specifický pro jazykovou verzi. Jeho pozice v řetězci je definována vlastnostmi NumberFormatInfo.CurrencyNegativePatternNumberFormatInfo.CurrencyPositivePattern aktuální jazykové verze. Symbol měny aktuální jazykové verze se může zobrazit v s případě, že style obsahuje NumberStyles.AllowCurrencySymbol příznak.
znaménko Volitelné znaménko. Znaménko se může zobrazit na začátku s , pokud style příznak obsahuje NumberStyles.AllowLeadingSign , a může se zobrazit na konci s , pokud style příznak NumberStyles.AllowTrailingSign obsahuje. Závorky lze použít s k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak.
Číslic Posloupnost číslic v rozsahu od 0 do 9
, Symbol oddělovače tisíců specifických pro jazykovou verzi. Oddělovač tisíců aktuální jazykové verze se může zobrazit, s pokud style příznak obsahuje NumberStyles.AllowThousands .
. Symbol desetinné čárky specifické pro jazykovou verzi. Symbol desetinné čárky aktuální jazykové verze se může zobrazit, s pokud style příznak obsahuje NumberStyles.AllowDecimalPoint .
desetinné číslice Posloupnost číslic v rozsahu od 0 do 9 Desetinná číslice se můžou zobrazovat s jenom v případě, že style příznak obsahuje NumberStyles.AllowDecimalPoint .
e Znak "e" nebo "E", který označuje, že hodnota je reprezentována exponenciálním zápisem. Parametr s může představovat číslo v exponenciálním zápisustyle, pokud NumberStyles.AllowExponent obsahuje příznak.

Poznámka

Všechny ukončující nulové znaky (U+0000) jsou s ignorovány operací analýzy bez ohledu na hodnotu argumentu style .

Řetězec s číslicemi (který odpovídá None stylu) se vždy úspěšně parsuje, pokud je v rozsahu Decimal typu. Zbývající NumberStyles členy ovládací prvky, které mohou být, ale nejsou nutné, aby byly přítomny ve vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles členy ovlivňují prvky, které mohou být přítomny v s.

Hodnota NumberStyles Prvky povolené v s kromě číslic
None Pouze prvek číslic .
AllowDecimalPoint Prvky . a desetinné číslice .
AllowExponent Parametr s může také použít exponenciální zápis. Tento příznak podporuje hodnoty v číslicíchformuláře Ečíslice; K úspěšnému parsování řetězců s prvky, jako jsou kladná nebo záporná znaménka a symboly desetinné čárky, jsou potřeba další příznaky.
AllowLeadingWhite Element ws na začátku s.
AllowTrailingWhite Prvek ws na konci .s
AllowLeadingSign Prvek znaménka na začátku s.
AllowTrailingSign Prvek znaménka na konci znaku s.
AllowParentheses Prvek znaménka ve formě závorek ohraničující číselnou hodnotu.
AllowThousands Prvek , .
AllowCurrencySymbol Prvek $ .
Currency Všichni. Parametr s nemůže představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu.
Float Prvek ws na začátku nebo konci sznaku na začátku sa symbolu.. Parametr s může také použít exponenciální zápis.
Number The ws, sign, and . elements.
Any Všechny styly s výjimkou s nemohou představovat šestnáctkové číslo.

Parametr s je analyzován pomocí informací o formátování v objektu NumberFormatInfo inicializovaném pro aktuální systémovou jazykovou verzi. Další informace najdete na webu CurrentInfo.

A Decimal má 29 číslic přesnosti. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo je zaokrouhleno, není zkráceno, na 29 číslic pomocí zaokrouhlení na nejbližší.

Pokud je v parametru s během operace analýzy zjištěn oddělovač, styles obsahuje NumberStyles.AllowThousands hodnoty a NumberStyles.AllowDecimalPoint příslušné oddělovače měny nebo čísla a oddělovače skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst místo oddělovače skupiny. Další informace o oddělovači naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.

Viz také

Platí pro

Parse(String, IFormatProvider)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadaných informací o formátu specifické pro jazykovou verzi.

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

Parametry

s
String

Řetězcové vyjádření čísla, které chcete převést.

provider
IFormatProvider

Informace IFormatProvider o analýze sspecifické pro jazykovou verzi .

Návraty

Číslo Decimal odpovídající číslu obsaženému v s zadaném parametru provider.

Implementuje

Výjimky

s není ve správném formátu.

s představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue.

Příklady

Následující příklad je obslužná rutina události kliknutí na tlačítko webového formuláře. Používá pole vrácené HttpRequest.UserLanguages vlastností k určení národního prostředí uživatele. Potom vytvoří instanci objektu CultureInfo , který odpovídá danému národnímu prostředí. Objekt NumberFormatInfo , který patří do daného CultureInfo objektu Parse(String, IFormatProvider) , se pak předá metodě pro převod vstupu uživatele na Decimal hodnotu.

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

Poznámky

Toto přetížení metody se běžně používá k převodu Parse(String, IFormatProvider) textu, který lze formátovat různými způsoby na Decimal hodnotu. Dá se například použít k převodu textu zadaného uživatelem do textového pole HTML na číselnou hodnotu.

Parametr s obsahuje číslo formuláře:

[ws] [znaménko] [digits,]digits[.fractional-digits][ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
Ws Volitelné prázdné znaky.
znaménko Volitelné znaménko.
Číslic Posloupnost číslic v rozsahu od 0 do 9
, Symbol oddělovače tisíců specifických pro jazykovou verzi.
. Symbol desetinné čárky specifické pro jazykovou verzi.
desetinné číslice Posloupnost číslic v rozsahu od 0 do 9

Parametr s se interpretuje pomocí NumberStyles.Number stylu. To znamená, že jsou povolené prázdné znaky a oddělovače tisíců, ale symboly měny nejsou. Pokud chcete explicitně definovat prvky (například symboly měny, oddělovače tisíců a prázdné znaky), které mohou být přítomné , spoužijte metodu Decimal.Parse(String, NumberStyles, IFormatProvider) .

Parametr provider je IFormatProvider implementace, například NumberFormatInfo objekt.CultureInfo Parametr provider poskytuje informace specifické pro jazykovou verzi používané při analýze. Pokud provider ano null, použije se aktuální jazyková verze vlákna.

Objekt Decimal má 29 číslic přesnosti. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo je zaokrouhleno, není zkráceno, na 29 číslic pomocí zaokrouhlení na nejbližší.

Pokud je v parametru s během operace analýzy zjištěn oddělovač a platné oddělovače měny nebo čísla desetinných míst a oddělovače skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupin. Další informace o oddělovači naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.

Viz také

Platí pro

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Parsuje rozsah znaků UTF-8 do hodnoty.

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

Parametry

utf8Text
ReadOnlySpan<Byte>

Rozsah znaků UTF-8 pro analýzu.

style
NumberStyles

Bitová kombinace stylů čísel, které mohou být přítomny v utf8Text.

provider
IFormatProvider

Objekt, který poskytuje informace o utf8Textformátování specifické pro jazykovou verzi .

Návraty

Výsledek analýzy utf8Text.

Implementuje

Platí pro

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede reprezentaci rozsahu čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.

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

Parametry

s
ReadOnlySpan<Char>

Rozsah obsahující znaky představující číslo, které se má převést.

style
NumberStyles

Bitové kombinace NumberStyles hodnot, které označují prvky stylu, které mohou být přítomny v s. Typická hodnota, kterou je třeba zadat, je Number.

provider
IFormatProvider

Objekt IFormatProvider , který poskytuje informace specifické pro jazykovou verzi o formátu s.

Návraty

Číslo Decimal odpovídající číslu obsaženému podle s a styleprovider.

Implementuje

Platí pro

Parse(String, NumberStyles, IFormatProvider)

Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs
Zdroj:
Decimal.cs

Převede řetězcovou reprezentaci čísla na jeho Decimal ekvivalent pomocí zadaného stylu a formátu specifického pro jazykovou verzi.

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

Parametry

s
String

Řetězcové vyjádření čísla, které chcete převést.

style
NumberStyles

Bitové kombinace NumberStyles hodnot, které označují prvky stylu, které mohou být přítomny v s. Typická hodnota, kterou je třeba zadat, je Number.

provider
IFormatProvider

Objekt IFormatProvider , který poskytuje informace specifické pro jazykovou verzi o formátu s.

Návraty

Číslo Decimal odpovídající číslu obsaženému podle s a styleprovider.

Implementuje

Výjimky

s není ve správném formátu.

s představuje číslo menší než Decimal.MinValue nebo větší než Decimal.MaxValue.

style není NumberStyles hodnota.

-nebo-

style AllowHexSpecifier je hodnota.

Příklady

Následující příklad používá k analýze řetězcových Decimal reprezentací hodnot různé parametry style a provider parametry.

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.

Poznámky

Parametr style definuje povolený formát parametru s pro úspěšnou operaci analýzy. Musí se jednat o kombinaci bitových příznaků z výčtu NumberStyles . Následující NumberStyles členové nejsou podporováni:

V závislosti na hodnotě styleparametru s může obsahovat následující prvky:

[ws] [$] [znaménko] [digits,]digits[.fractional-digits][e[sign]digits][ws]

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.

Element Popis
$ Symbol měny specifický pro jazykovou verzi. Jeho pozice v řetězci je definována vlastnostmi CurrencyNegativePatternCurrencyPositivePattern objektu NumberFormatInfo vráceného GetFormat metodou parametru provider . Symbol měny se může zobrazit, s pokud style obsahuje NumberStyles.AllowCurrencySymbol příznak.
Ws Volitelné prázdné znaky. Prázdné znaky se můžou objevit na začátku s , pokud style příznak obsahuje NumberStyles.AllowLeadingWhite , a může se zobrazit na konci s , pokud style příznak NumberStyles.AllowTrailingWhite obsahuje.
znaménko Volitelné znaménko. Znaménko se může zobrazit na začátku s , pokud style příznak obsahuje NumberStyles.AllowLeadingSign , a může se zobrazit na konci s , pokud style příznak NumberStyles.AllowTrailingSign obsahuje. Závorky lze použít s k označení záporné hodnoty, pokud style obsahuje NumberStyles.AllowParentheses příznak.
Číslic Posloupnost číslic v rozsahu od 0 do 9
, Symbol oddělovače tisíců specifických pro jazykovou verzi. Oddělovač tisíců jazykové verze definované jazykovou provider verzí se může zobrazit v s případě, že style obsahuje NumberStyles.AllowThousands příznak.
. Symbol desetinné čárky specifické pro jazykovou verzi. Symbol desetinné čárky jazykové verze definované jazykovou provider verzí se může zobrazit, s pokud style obsahuje NumberStyles.AllowDecimalPoint příznak.
desetinné číslice Posloupnost číslic v rozsahu od 0 do 9 Desetinná číslice se můžou zobrazovat s jenom v případě, že style příznak obsahuje NumberStyles.AllowDecimalPoint .
e Znak "e" nebo "E", který označuje, že hodnota je reprezentována exponenciálním zápisem. Parametr s může představovat číslo v exponenciálním zápisustyle, pokud NumberStyles.AllowExponent obsahuje příznak.

Poznámka

Všechny ukončující nulové znaky (U+0000) jsou s ignorovány operací analýzy bez ohledu na hodnotu argumentu style .

Řetězec s číslicemi (který odpovídá None stylu) se vždy úspěšně parsuje, pokud je v rozsahu Decimal typu. Zbývající NumberStyles členy ovládací prvky, které mohou být, ale nejsou nutné, aby byly přítomny ve vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles členy ovlivňují prvky, které mohou být přítomny v s.

Hodnota NumberStyles Prvky povolené v s kromě číslic
None Pouze prvek číslic .
AllowDecimalPoint Prvky . a desetinné číslice .
AllowExponent Parametr s může také použít exponenciální zápis. Tento příznak podporuje hodnoty v číslicíchformuláře Ečíslice; K úspěšnému parsování řetězců s prvky, jako jsou kladná nebo záporná znaménka a symboly desetinné čárky, jsou potřeba další příznaky.
AllowLeadingWhite Element ws na začátku s.
AllowTrailingWhite Prvek ws na konci .s
AllowLeadingSign Prvek znaménka na začátku s.
AllowTrailingSign Prvek znaménka na konci znaku s.
AllowParentheses Prvek znaménka ve formě závorek ohraničující číselnou hodnotu.
AllowThousands Prvek , .
AllowCurrencySymbol Prvek $ .
Currency Všichni. Parametr s nemůže představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu.
Float Prvek ws na začátku nebo konci sznaku , na začátku sa symbolu . Parametr s může také použít exponenciální zápis.
Number Prvky ws, ,sign , a ..
Any Všechny styly s výjimkou s nemohou představovat šestnáctkové číslo.

Parametr provider je IFormatProvider implementace, například NumberFormatInfo objekt.CultureInfo Parametr provider poskytuje informace specifické pro jazykovou verzi používané při analýze. Pokud provider ano null, použije se aktuální jazyková verze vlákna.

Objekt Decimal má 29 číslic přesnosti. Pokud s představuje číslo, které má více než 29 číslic, ale má zlomkovou část a je v rozsahu MaxValue a MinValue, číslo je zaokrouhleno, není zkráceno, na 29 číslic pomocí zaokrouhlení na nejbližší.

Pokud je v parametru s během operace analýzy zjištěn oddělovač a platné oddělovače měny nebo čísla desetinných míst a oddělovače skupin jsou stejné, operace analýzy předpokládá, že oddělovač je oddělovač desetinných míst, nikoli oddělovač skupin. Další informace o oddělovači naleznete v tématu CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatora NumberGroupSeparator.

Viz také

Platí pro