Decimal.Parse Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
.
s
n’est pas au format correct.
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 s et 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
.
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.