Partager via


Decimal.Parse Méthode

Définition

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent Decimal.

Surcharges

Parse(String)

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent Decimal.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Analyse une étendue de caractères UTF-8 en une valeur.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Analyse une étendue de caractères en une valeur.

Parse(String, NumberStyles)

Convertit la représentation sous forme de chaîne d’un nombre dans un style spécifié en son équivalent Decimal.

Parse(String, IFormatProvider)

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent Decimal à l’aide des informations de format spécifiques à la culture spécifiées.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Analyse une étendue de caractères UTF-8 en une valeur.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Convertit la représentation d’étendue d’un nombre en son équivalent Decimal à l’aide du style et du format spécifique à la culture spécifiés.

Parse(String, NumberStyles, IFormatProvider)

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent Decimal à l’aide du style et du format spécifique à la culture spécifiés.

Parse(String)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent Decimal.

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

Paramètres

s
String

Représentation sous forme de chaîne du nombre à convertir.

Retours

Équivalent au nombre contenu dans s.

Exceptions

s est null.

s n’est pas au format correct.

s représente un nombre inférieur à Decimal.MinValue ou supérieur à Decimal.MaxValue.

Exemples

L’exemple de code suivant utilise la méthode Parse(String) pour analyser les représentations sous forme de chaînes de valeurs Decimal.

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

Remarques

Le paramètre s contient un certain nombre de formulaires :

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

Les éléments entre crochets ([ et ]) sont facultatifs. Le tableau suivant décrit chaque élément.

Élément Description
ws Espace blanc facultatif.
signer Signe facultatif.
chiffres Séquence de chiffres allant de 0 à 9.
, Symbole de séparateur de milliers spécifique à la culture.
. Symbole décimal spécifique à la culture.
chiffres fractionnaires Séquence de chiffres allant de 0 à 9.

Le paramètre s est interprété à l’aide du style NumberStyles.Number. Cela signifie que l’espace blanc et les milliers de séparateurs sont autorisés, mais les symboles monétaires ne sont pas. Pour définir explicitement les éléments (tels que les symboles monétaires, les séparateurs de milliers et les espaces blancs) qui peuvent être présents dans s, utilisez la méthode Decimal.Parse(String, NumberStyles) ou la méthode Decimal.Parse(String, NumberStyles, IFormatProvider).

Le paramètre s est analysé à l’aide des informations de mise en forme dans un NumberFormatInfo initialisé pour la culture système actuelle. Pour plus d’informations, consultez CurrentInfo. Pour analyser une chaîne à l’aide des informations de mise en forme d’une autre culture, utilisez la méthode Decimal.Parse(String, IFormatProvider) ou Decimal.Parse(String, NumberStyles, IFormatProvider).

Si nécessaire, la valeur de s est arrondie à l’aide de l’arrondi le plus proche.

Un Decimal a 29 chiffres de précision. Si s représente un nombre qui a plus de 29 chiffres, mais a une partie fractionnaire et se trouve dans la plage de MaxValue et MinValue, le nombre est arrondi, non tronqué, à 29 chiffres à l’aide de l’arrondi le plus proche.

Si, lors d’une opération d’analyse, un séparateur est rencontré dans le paramètre s et que les séparateurs de valeurs décimales ou de nombres applicables sont identiques, l’opération d’analyse suppose que le séparateur est un séparateur décimal plutôt qu’un séparateur de groupe. Pour plus d’informations sur les séparateurs, consultez CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoret NumberGroupSeparator.

Voir aussi

S’applique à

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs

Analyse une étendue de caractères UTF-8 en une valeur.

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

Paramètres

utf8Text
ReadOnlySpan<Byte>

Étendue de caractères UTF-8 à analyser.

provider
IFormatProvider

Objet qui fournit des informations de mise en forme spécifiques à la culture sur utf8Text.

Retours

Résultat de l’analyse utf8Text.

Implémente

S’applique à

Parse(ReadOnlySpan<Char>, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Analyse une étendue de caractères en une valeur.

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

Paramètres

s
ReadOnlySpan<Char>

Étendue de caractères à analyser.

provider
IFormatProvider

Objet qui fournit des informations de mise en forme spécifiques à la culture sur s.

Retours

Résultat de l’analyse s.

Implémente

S’applique à

Parse(String, NumberStyles)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convertit la représentation sous forme de chaîne d’un nombre dans un style spécifié en son équivalent Decimal.

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

Paramètres

s
String

Représentation sous forme de chaîne du nombre à convertir.

style
NumberStyles

Combinaison de bits de valeurs NumberStyles qui indique les éléments de style qui peuvent être présents dans s. Une valeur classique à spécifier est Number.

Retours

Nombre Decimal équivalent au nombre contenu dans s, tel que spécifié par style.

Exceptions

s est null.

style n’est pas une valeur NumberStyles.

-ou-

style est la valeur AllowHexSpecifier.

s n’est pas au format correct.

s représente un nombre inférieur à Decimal.MinValue ou supérieur à Decimal.MaxValue

Exemples

L’exemple de code suivant utilise la méthode Parse(String, NumberStyles) pour analyser les représentations sous forme de chaînes de valeurs Decimal à l’aide de la culture en-US.

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.

Remarques

Le paramètre style définit les éléments de style (tels que des milliers de séparateurs, des espaces blancs et des symboles monétaires) autorisés dans le paramètre s pour que l’opération d’analyse réussisse. Il doit s’agir d’une combinaison d’indicateurs de bits de l’énumération NumberStyles. Les membres NumberStyles suivants ne sont pas pris en charge :

Selon la valeur de style, le paramètre s peut inclure les éléments suivants :

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

Les éléments entre crochets ([ et ]) sont facultatifs. Le tableau suivant décrit chaque élément.

Élément Description
ws Espace blanc facultatif. L’espace blanc peut apparaître au début de s si style inclut l’indicateur de NumberStyles.AllowLeadingWhite, et il peut apparaître à la fin de s si style inclut l’indicateur de NumberStyles.AllowTrailingWhite.
$ Symbole monétaire propre à la culture. Sa position dans la chaîne est définie par les propriétés NumberFormatInfo.CurrencyNegativePattern et NumberFormatInfo.CurrencyPositivePattern de la culture actuelle. Le symbole monétaire de la culture actuelle peut apparaître dans s si style inclut l’indicateur de NumberStyles.AllowCurrencySymbol.
signer Signe facultatif. Le signe peut apparaître au début de s si style inclut l’indicateur de NumberStyles.AllowLeadingSign et qu’il peut apparaître à la fin de s si style inclut l’indicateur de NumberStyles.AllowTrailingSign. Les parenthèses peuvent être utilisées dans s pour indiquer une valeur négative si style inclut l’indicateur de NumberStyles.AllowParentheses.
chiffres Séquence de chiffres allant de 0 à 9.
, Symbole de séparateur de milliers spécifique à la culture. Le séparateur de milliers de la culture actuelle peut apparaître dans s si style inclut l’indicateur de NumberStyles.AllowThousands.
. Symbole décimal spécifique à la culture. Le symbole décimal de la culture actuelle peut apparaître dans s si style inclut l’indicateur de NumberStyles.AllowDecimalPoint.
chiffres fractionnaires Séquence de chiffres allant de 0 à 9. Les chiffres fractionnels peuvent apparaître dans s uniquement si style inclut l’indicateur de NumberStyles.AllowDecimalPoint.
e Caractère « e » ou « E », qui indique que la valeur est représentée en notation exponentielle. Le paramètre s peut représenter un nombre en notation exponentielle si style inclut l’indicateur de NumberStyles.AllowExponent.

Note

Les caractères NUL (U+0000) de fin dans s sont ignorés par l’opération d’analyse, quelle que soit la valeur de l’argument style.

Une chaîne avec des chiffres uniquement (qui correspond au style None) analyse toujours correctement s’il se trouve dans la plage du type Decimal. Les NumberStyles membres restants contrôlent les éléments qui peuvent être, mais qui ne sont pas obligatoires pour être présents dans la chaîne d’entrée. Le tableau suivant indique comment les membres de NumberStyles individuels affectent les éléments qui peuvent être présents dans s.

Valeur NumberStyles Éléments autorisés en plus des chiffres
None Les chiffres élément uniquement.
AllowDecimalPoint Le . et fractionnaires éléments.
AllowExponent Le paramètre s peut également utiliser la notation exponentielle. Cet indicateur prend en charge les valeurs sous forme chiffresEchiffres; des indicateurs supplémentaires sont nécessaires pour analyser correctement les chaînes avec des éléments tels que des signes positifs ou négatifs et des symboles décimaux.
AllowLeadingWhite L’élément ws au début de s.
AllowTrailingWhite L’élément ws à la fin de s.
AllowLeadingSign Signe élément au début de s.
AllowTrailingSign Signe élément à la fin de s.
AllowParentheses Signe élément sous la forme de parenthèses englobant la valeur numérique.
AllowThousands Élément ,.
AllowCurrencySymbol Élément $.
Currency Tout. Le paramètre s ne peut pas représenter un nombre hexadécimal ou un nombre en notation exponentielle.
Float Les ws élément au début ou à la fin de s, signe au début de set le symbole .. Le paramètre s peut également utiliser la notation exponentielle.
Number Éléments ws, sign, , et ..
Any Tous les styles, sauf s ne peuvent pas représenter un nombre hexadécimal.

Le paramètre s est analysé à l’aide des informations de mise en forme dans un objet NumberFormatInfo initialisé pour la culture système actuelle. Pour plus d’informations, consultez CurrentInfo.

Un Decimal a 29 chiffres de précision. Si s représente un nombre qui a plus de 29 chiffres, mais a une partie fractionnaire et se trouve dans la plage de MaxValue et MinValue, le nombre est arrondi, non tronqué, à 29 chiffres à l’aide de l’arrondi le plus proche.

Si un séparateur est rencontré dans le paramètre s lors d’une opération d’analyse, styles inclut les valeurs NumberStyles.AllowThousands et NumberStyles.AllowDecimalPoint, et les séparateurs de devises ou de nombres et de groupes applicables sont identiques, l’opération d’analyse suppose que le séparateur est un séparateur décimal plutôt qu’un séparateur de groupe. Pour plus d’informations sur les séparateurs, consultez CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoret NumberGroupSeparator.

Voir aussi

S’applique à

Parse(String, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent Decimal à l’aide des informations de format spécifiques à la culture spécifiées.

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

Paramètres

s
String

Représentation sous forme de chaîne du nombre à convertir.

provider
IFormatProvider

Un IFormatProvider qui fournit des informations d’analyse spécifiques à la culture sur s.

Retours

Nombre Decimal équivalent au nombre contenu dans s, tel que spécifié par provider.

Implémente

Exceptions

s est null.

s n’est pas du format correct.

s représente un nombre inférieur à Decimal.MinValue ou supérieur à Decimal.MaxValue.

Exemples

L’exemple suivant est le gestionnaire d’événements click de bouton d’un formulaire Web. Il utilise le tableau retourné par la propriété HttpRequest.UserLanguages pour déterminer les paramètres régionaux de l’utilisateur. Il instancie ensuite un objet CultureInfo qui correspond à ces paramètres régionaux. L’objet NumberFormatInfo qui appartient à cet objet CultureInfo est ensuite passé à la méthode Parse(String, IFormatProvider) pour convertir l’entrée de l’utilisateur en valeur Decimal.

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

Remarques

Cette surcharge de la méthode Parse(String, IFormatProvider) est couramment utilisée pour convertir du texte pouvant être mis en forme de différentes manières en une valeur Decimal. Par exemple, il peut être utilisé pour convertir le texte entré par un utilisateur en zone de texte HTML en valeur numérique.

Le paramètre s contient un certain nombre de formulaires :

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

Les éléments entre crochets ([ et ]) sont facultatifs. Le tableau suivant décrit chaque élément.

Élément Description
ws Espace blanc facultatif.
signer Signe facultatif.
chiffres Séquence de chiffres allant de 0 à 9.
, Symbole de séparateur de milliers spécifique à la culture.
. Symbole décimal spécifique à la culture.
chiffres fractionnaires Séquence de chiffres allant de 0 à 9.

Le paramètre s est interprété à l’aide du style NumberStyles.Number. Cela signifie que l’espace blanc et les milliers de séparateurs sont autorisés, mais les symboles monétaires ne sont pas. Pour définir explicitement les éléments (tels que les symboles monétaires, les milliers de séparateurs et les espaces blancs) qui peuvent être présents dans s, utilisez la méthode Decimal.Parse(String, NumberStyles, IFormatProvider).

Le paramètre provider est une implémentation IFormatProvider, telle qu’un objet NumberFormatInfo ou CultureInfo. Le paramètre provider fournit des informations spécifiques à la culture utilisées dans l’analyse. Si provider est null, la culture actuelle du thread est utilisée.

Un objet Decimal a 29 chiffres de précision. Si s représente un nombre qui a plus de 29 chiffres, mais a une partie fractionnaire et se trouve dans la plage de MaxValue et MinValue, le nombre est arrondi, non tronqué, à 29 chiffres à l’aide de l’arrondi le plus proche.

Si un séparateur est rencontré dans le paramètre s pendant une opération d’analyse, et que les séparateurs de valeurs décimales ou de nombres applicables sont identiques, l’opération d’analyse suppose que le séparateur est un séparateur décimal plutôt qu’un séparateur de groupe. Pour plus d’informations sur les séparateurs, consultez CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoret NumberGroupSeparator.

Voir aussi

S’applique à

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs

Analyse une étendue de caractères UTF-8 en une valeur.

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

Paramètres

utf8Text
ReadOnlySpan<Byte>

Étendue de caractères UTF-8 à analyser.

style
NumberStyles

Combinaison au niveau du bit des styles numériques qui peuvent être présents dans utf8Text.

provider
IFormatProvider

Objet qui fournit des informations de mise en forme spécifiques à la culture sur utf8Text.

Retours

Résultat de l’analyse utf8Text.

Implémente

S’applique à

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convertit la représentation d’étendue d’un nombre en son équivalent Decimal à l’aide du style et du format spécifique à la culture spécifiés.

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

Paramètres

s
ReadOnlySpan<Char>

Étendue contenant les caractères représentant le nombre à convertir.

style
NumberStyles

Combinaison de bits de valeurs NumberStyles qui indique les éléments de style qui peuvent être présents dans s. Une valeur classique à spécifier est Number.

provider
IFormatProvider

Objet IFormatProvider qui fournit des informations spécifiques à la culture sur le format de s.

Retours

Nombre Decimal équivalent au nombre contenu dans s, tel que spécifié par style et provider.

Implémente

S’applique à

Parse(String, NumberStyles, IFormatProvider)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent Decimal à l’aide du style et du format spécifique à la culture spécifiés.

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

Paramètres

s
String

Représentation sous forme de chaîne du nombre à convertir.

style
NumberStyles

Combinaison de bits de valeurs NumberStyles qui indique les éléments de style qui peuvent être présents dans s. Une valeur classique à spécifier est Number.

provider
IFormatProvider

Objet IFormatProvider qui fournit des informations spécifiques à la culture sur le format de s.

Retours

Nombre Decimal équivalent au nombre contenu dans s, tel que spécifié par style et provider.

Implémente

Exceptions

s n’est pas au format correct.

s représente un nombre inférieur à Decimal.MinValue ou supérieur à Decimal.MaxValue.

s est null.

style n’est pas une valeur NumberStyles.

-ou-

style est la valeur AllowHexSpecifier.

Exemples

L’exemple suivant utilise une variété de paramètres style et provider pour analyser les représentations sous forme de chaînes de valeurs Decimal.

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.

Remarques

Le paramètre style définit le format autorisé du paramètre s pour que l’opération d’analyse réussisse. Il doit s’agir d’une combinaison d’indicateurs de bits de l’énumération NumberStyles. Les membres NumberStyles suivants ne sont pas pris en charge :

Selon la valeur de style, le paramètre s peut inclure les éléments suivants :

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

Les éléments entre crochets ([ et ]) sont facultatifs. Le tableau suivant décrit chaque élément.

Élément Description
$ Symbole monétaire propre à la culture. Sa position dans la chaîne est définie par les propriétés CurrencyNegativePattern et CurrencyPositivePattern de l’objet NumberFormatInfo retourné par la méthode GetFormat du paramètre provider. Le symbole monétaire peut apparaître dans s si style inclut l’indicateur de NumberStyles.AllowCurrencySymbol.
ws Espace blanc facultatif. L’espace blanc peut apparaître au début de s si style inclut l’indicateur de NumberStyles.AllowLeadingWhite, et il peut apparaître à la fin de s si style inclut l’indicateur de NumberStyles.AllowTrailingWhite.
signer Signe facultatif. Le signe peut apparaître au début de s si style inclut l’indicateur de NumberStyles.AllowLeadingSign et qu’il peut apparaître à la fin de s si style inclut l’indicateur de NumberStyles.AllowTrailingSign. Les parenthèses peuvent être utilisées dans s pour indiquer une valeur négative si style inclut l’indicateur de NumberStyles.AllowParentheses.
chiffres Séquence de chiffres allant de 0 à 9.
, Symbole de séparateur de milliers spécifique à la culture. Le séparateur de milliers de la culture définie par provider peut apparaître dans s si style inclut l’indicateur de NumberStyles.AllowThousands.
. Symbole décimal spécifique à la culture. Le symbole décimal de la culture définie par provider peut apparaître dans s si style inclut l’indicateur de NumberStyles.AllowDecimalPoint.
chiffres fractionnaires Séquence de chiffres allant de 0 à 9. Les chiffres fractionnels peuvent apparaître dans s uniquement si style inclut l’indicateur de NumberStyles.AllowDecimalPoint.
e Caractère « e » ou « E », qui indique que la valeur est représentée en notation exponentielle. Le paramètre s peut représenter un nombre en notation exponentielle si style inclut l’indicateur de NumberStyles.AllowExponent.

Note

Les caractères NUL (U+0000) de fin dans s sont ignorés par l’opération d’analyse, quelle que soit la valeur de l’argument style.

Une chaîne avec des chiffres uniquement (qui correspond au style None) analyse toujours correctement s’il se trouve dans la plage du type Decimal. Les NumberStyles membres restants contrôlent les éléments qui peuvent être, mais qui ne sont pas obligatoires pour être présents dans la chaîne d’entrée. Le tableau suivant indique comment les membres de NumberStyles individuels affectent les éléments qui peuvent être présents dans s.

Valeur NumberStyles Éléments autorisés en plus des chiffres
None Les chiffres élément uniquement.
AllowDecimalPoint Le . et fractionnaires éléments.
AllowExponent Le paramètre s peut également utiliser la notation exponentielle. Cet indicateur prend en charge les valeurs sous forme chiffresEchiffres; des indicateurs supplémentaires sont nécessaires pour analyser correctement les chaînes avec des éléments tels que des signes positifs ou négatifs et des symboles décimaux.
AllowLeadingWhite L’élément ws au début de s.
AllowTrailingWhite L’élément ws à la fin de s.
AllowLeadingSign Signe élément au début de s.
AllowTrailingSign Signe élément à la fin de s.
AllowParentheses Signe élément sous la forme de parenthèses englobant la valeur numérique.
AllowThousands Élément ,.
AllowCurrencySymbol Élément $.
Currency Tout. Le paramètre s ne peut pas représenter un nombre hexadécimal ou un nombre en notation exponentielle.
Float L’élément ws au début ou à la fin de s, signe au début de s, et le . symbole. Le paramètre s peut également utiliser la notation exponentielle.
Number Les ws, sign, ,et . éléments.
Any Tous les styles, sauf s ne peuvent pas représenter un nombre hexadécimal.

Le paramètre provider est une implémentation IFormatProvider, telle qu’un objet NumberFormatInfo ou CultureInfo. Le paramètre provider fournit des informations spécifiques à la culture utilisées dans l’analyse. Si provider est null, la culture actuelle du thread est utilisée.

Un objet Decimal a 29 chiffres de précision. Si s représente un nombre qui a plus de 29 chiffres, mais a une partie fractionnaire et se trouve dans la plage de MaxValue et MinValue, le nombre est arrondi, non tronqué, à 29 chiffres à l’aide de l’arrondi le plus proche.

Si un séparateur est rencontré dans le paramètre s pendant une opération d’analyse, et que les séparateurs de valeurs décimales ou de nombres applicables sont identiques, l’opération d’analyse suppose que le séparateur est un séparateur décimal plutôt qu’un séparateur de groupe. Pour plus d’informations sur les séparateurs, consultez CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoret NumberGroupSeparator.

Voir aussi

S’applique à