Int64.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 entier 64 bits signé.
Surcharges
Parse(String, NumberStyles, IFormatProvider) |
Convertit la représentation sous forme de chaîne d'un nombre dans un style et un format propre à une culture spécifiés en entier 64 bits signé équivalent. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Convertit la représentation sous forme de plage d'un nombre dans un style et un format propre à une culture spécifiés en entier 64 bits signé équivalent. |
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Analyse une étendue de caractères UTF-8 dans une valeur. |
Parse(String, IFormatProvider) |
Convertit la représentation d'un nombre sous forme de chaîne dans un format propre à une culture spécifié en entier 64 bits signé équivalent. |
Parse(String) |
Convertit la représentation sous forme de chaîne d'un nombre en son équivalent entier 64 bits signé. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Analyse une étendue de caractères dans une valeur. |
Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Analyse une étendue de caractères UTF-8 dans une valeur. |
Parse(String, NumberStyles) |
Convertit une représentation d'un nombre sous forme de chaîne dans un style spécifié en entier 64 bits signé équivalent. |
Parse(String, NumberStyles, IFormatProvider)
Convertit la représentation sous forme de chaîne d'un nombre dans un style et un format propre à une culture spécifiés en entier 64 bits signé équivalent.
public:
static long Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static long Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<long>::Parse;
public static long Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static long Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> int64
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Long
Paramètres
- s
- String
Chaîne contenant un nombre à convertir.
- style
- NumberStyles
Combinaison de bits de valeurs d'énumération qui indique les éléments de style qui peuvent être présents dans s
. Une valeur typique à spécifier est Integer.
- provider
- IFormatProvider
IFormatProvider qui fournit des informations de format propres à la culture concernant s
.
Retours
Entier 64 bits signé équivalant au nombre spécifié dans s
.
Implémente
Exceptions
s
a la valeur null
.
style
n’est pas une valeur NumberStyles.
- ou -
style
n’est pas une combinaison des valeurs AllowHexSpecifier et HexNumber.
s
n’est pas dans un format compatible avec style
.
s
représente un nombre inférieur à Int64.MinValue ou supérieur à Int64.MaxValue.
- ou -
style
prend en charge les chiffres fractionnaires, mais s
inclut des chiffres fractionnaires différents de zéro.
Exemples
L’exemple suivant utilise divers style
paramètres et provider
pour analyser les représentations sous forme de chaîne de Int64 valeurs. Il illustre également certaines des différentes façons dont la même chaîne peut être interprétée en fonction de la culture dont les informations de mise en forme sont utilisées pour l’opération d’analyse.
using System;
using System.Globalization;
public class ParseInt64
{
public static void Main()
{
Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
new CultureInfo("en-GB"));
Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
new CultureInfo("fr-FR"));
Convert("12,000", NumberStyles.Float, new CultureInfo("en-US"));
Convert("12 425,00", NumberStyles.Float | NumberStyles.AllowThousands,
new CultureInfo("sv-SE"));
Convert("12,425.00", NumberStyles.Float | NumberStyles.AllowThousands,
NumberFormatInfo.InvariantInfo);
Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
new CultureInfo("fr-FR"));
Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
new CultureInfo("en-US"));
Convert("631,900", NumberStyles.Integer | NumberStyles.AllowThousands,
new CultureInfo("en-US"));
}
private static void Convert(string value, NumberStyles style,
IFormatProvider provider)
{
try
{
long number = Int64.Parse(value, style, provider);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to convert '{0}'.", value);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is out of range of the Int64 type.", value);
}
}
}
// This example displays the following output to the console:
// Converted '12,000' to 12000.
// Converted '12,000' to 12.
// Unable to convert '12,000'.
// Converted '12 425,00' to 12425.
// Converted '12,425.00' to 12425.
// '631,900' is out of range of the Int64 type.
// Unable to convert '631,900'.
// Converted '631,900' to 631900.
open System
open System.Globalization
let convert (value: string) style provider =
try
let number = Int64.Parse(value, style, provider)
printfn $"Converted '{value}' to {number}."
with
| :? FormatException ->
printfn $"Unable to convert '{value}'."
| :? OverflowException ->
printfn $"'{value}' is out of range of the Int64 type."
convert "12,000" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "en-GB")
convert "12,000" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "fr-FR")
convert "12,000" NumberStyles.Float (CultureInfo "en-US")
convert "12 425,00" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "sv-SE")
convert "12,425.00" (NumberStyles.Float ||| NumberStyles.AllowThousands) NumberFormatInfo.InvariantInfo
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint) (CultureInfo "fr-FR")
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint) (CultureInfo "en-US")
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowThousands) (CultureInfo "en-US")
// This example displays the following output to the console:
// Converted '12,000' to 12000.
// Converted '12,000' to 12.
// Unable to convert '12,000'.
// Converted '12 425,00' to 12425.
// Converted '12,425.00' to 12425.
// '631,900' is out of range of the Int64 type.
// Unable to convert '631,900'.
// Converted '631,900' to 631900.
Imports System.Globalization
Module ParseInt64
Public Sub Main()
Convert("12,000", NumberStyles.Float Or NumberStyles.AllowThousands, _
New CultureInfo("en-GB"))
Convert("12,000", NumberStyles.Float Or NumberStyles.AllowThousands, _
New CultureInfo("fr-FR"))
Convert("12,000", NumberStyles.Float, New CultureInfo("en-US"))
Convert("12 425,00", NumberStyles.Float Or NumberStyles.AllowThousands, _
New CultureInfo("sv-SE"))
Convert("12,425.00", NumberStyles.Float Or NumberStyles.AllowThousands, _
NumberFormatInfo.InvariantInfo)
Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowDecimalPoint, _
New CultureInfo("fr-FR"))
Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowDecimalPoint, _
New CultureInfo("en-US"))
Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowThousands, _
New CultureInfo("en-US"))
End Sub
Private Sub Convert(value As String, style As NumberStyles, _
provider As IFormatProvider)
Try
Dim number As Long = Int64.Parse(value, style, provider)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", value)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range of the Int64 type.", value)
End Try
End Sub
End Module
' This example displays the following output to the console:
' Converted '12,000' to 12000.
' Converted '12,000' to 12.
' Unable to convert '12,000'.
' Converted '12 425,00' to 12425.
' Converted '12,425.00' to 12425.
' '631,900' is out of range of the Int64 type.
' Unable to convert '631,900'.
' Converted '631,900' to 631900.
Remarques
Le style
paramètre définit les éléments de style (tels que l’espace blanc ou le signe positif) qui sont autorisés dans le s
paramètre 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 . Selon la valeur de style
, le s
paramètre peut inclure les éléments suivants :
[ws] [$] [sign] [digits,]digits[.fractional_digits][e[sign]exponential_digits][ws]
Ou, si style
inclut AllowHexSpecifier:
[ws]hexdigits[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 NumberStyles.AllowLeadingWhite , et il peut apparaître à la fin de s si style inclut l’indicateur NumberStyles.AllowTrailingWhite . |
$ | Symbole monétaire spécifique à la culture. Sa position dans la chaîne est définie par la NumberFormatInfo.CurrencyPositivePattern propriété de l’objet NumberFormatInfo retourné par la GetFormat méthode du provider paramètre . Le symbole monétaire peut apparaître dans s si style inclut l’indicateur NumberStyles.AllowCurrencySymbol . |
sign | Signe facultatif. Le signe peut apparaître au début de s si style inclut l’indicateur NumberStyles.AllowLeadingSign ou à la fin de s si style inclut l’indicateur NumberStyles.AllowTrailingSign . Les parenthèses peuvent être utilisées dans s pour indiquer une valeur négative si style inclut l’indicateur NumberStyles.AllowParentheses . |
chiffres fractional_digits exponential_digits |
Séquence de chiffres comprises entre 0 et 9. |
, | Symbole de séparateur de milliers propre à la culture. Le séparateur de milliers de la culture spécifiée par provider peut apparaître dans s si style inclut l’indicateur NumberStyles.AllowThousands . |
. | Symbole décimal spécifique à la culture. Le symbole décimal de la culture spécifiée par provider peut apparaître dans s si style inclut l’indicateur NumberStyles.AllowDecimalPoint .Seul le chiffre 0 peut apparaître en tant que chiffre fractionnaire pour que l’opération d’analyse réussisse ; si fractional_digits inclut un autre chiffre, un OverflowException est levée. |
e | Caractère « e » ou « E », qui indique que la valeur est représentée en notation exponentielle. Le s paramètre peut représenter un nombre en notation exponentielle si style inclut l’indicateur NumberStyles.AllowExponent . |
hexdigits | Séquence de chiffres hexadécimaux de 0 à f ou de 0 à F. |
Notes
Tous 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 décimaux uniquement (qui correspond au NumberStyles.None style) analyse toujours correctement si elle se trouve dans la plage du Int64 type. La plupart des membres restants NumberStyles contrôlent les éléments qui peuvent être, mais qui ne sont pas obligatoirement présents dans cette chaîne d’entrée. Le tableau suivant indique comment les membres individuels NumberStyles affectent les éléments qui peuvent être présents dans s
.
Valeurs NumberStyles non composites | Éléments autorisés dans s en plus des chiffres |
---|---|
NumberStyles.None | Chiffres décimaux uniquement. |
NumberStyles.AllowDecimalPoint | Éléments décimaux ( . ) et à chiffres fractionnaires . Toutefois, les chiffres fractionnaires ne doivent se composer que d’un ou plusieurs chiffres 0 ou d’un OverflowException est levée. |
NumberStyles.AllowExponent | Le s paramètre peut également utiliser la notation exponentielle. |
NumberStyles.AllowLeadingWhite | Élément ws au début de s . |
NumberStyles.AllowTrailingWhite | Élément ws à la fin de s . |
NumberStyles.AllowLeadingSign | Un signe peut apparaître avant les chiffres. |
NumberStyles.AllowTrailingSign | Un signe peut apparaître après les chiffres. |
NumberStyles.AllowParentheses | Élément sign sous la forme de parenthèses englobant la valeur numérique. |
NumberStyles.AllowThousands | Élément séparateur de milliers ( , ). |
NumberStyles.AllowCurrencySymbol | Élément $. |
Si l’indicateur NumberStyles.AllowHexSpecifier est utilisé, s
doit être une valeur hexadécimale sans préfixe. Par exemple, « C9AF3 » analyse correctement, mais « 0xC9AF3 » ne le fait pas. Les seuls autres indicateurs qui peuvent être présents dans style
sont NumberStyles.AllowLeadingWhite et NumberStyles.AllowTrailingWhite. (L’énumération NumberStyles a un style numérique composite, NumberStyles.HexNumber, qui inclut les deux indicateurs d’espace blanc.)
Le provider
paramètre est une IFormatProvider implémentation, telle qu’un NumberFormatInfo objet ou CultureInfo . Le provider
paramètre fournit des informations spécifiques à la culture utilisées dans l’analyse. Si provider
est null
, le NumberFormatInfo pour la culture actuelle est utilisé.
Voir aussi
S’applique à
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
Convertit la représentation sous forme de plage d'un nombre dans un style et un format propre à une culture spécifiés en entier 64 bits signé équivalent.
public static long Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
public static long Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> int64
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Long
Paramètres
- s
- ReadOnlySpan<Char>
Plage contenant les caractères représentant le nombre à convertir.
- style
- NumberStyles
Combinaison de bits de valeurs d'énumération qui indique les éléments de style qui peuvent être présents dans s
. Une valeur typique à spécifier est Integer.
- provider
- IFormatProvider
IFormatProvider qui fournit des informations de format propres à la culture concernant s
.
Retours
Entier 64 bits signé équivalant au nombre spécifié dans s
.
Implémente
S’applique à
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
Analyse une étendue de caractères UTF-8 dans une valeur.
public static long Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> int64
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Long
Paramètres
- utf8Text
- ReadOnlySpan<Byte>
Étendue de caractères UTF-8 à analyser.
- style
- NumberStyles
Combinaison de styles numériques au niveau du bit qui peut être présente dans utf8Text
.
- provider
- IFormatProvider
Objet qui fournit des informations de mise en forme propres à la culture concernant utf8Text
.
Retours
Résultat de l’analyse .utf8Text
Implémente
S’applique à
Parse(String, IFormatProvider)
Convertit la représentation d'un nombre sous forme de chaîne dans un format propre à une culture spécifié en entier 64 bits signé équivalent.
public:
static long Parse(System::String ^ s, IFormatProvider ^ provider);
public:
static long Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<long>::Parse;
public static long Parse (string s, IFormatProvider provider);
public static long Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> int64
Public Shared Function Parse (s As String, provider As IFormatProvider) As Long
Paramètres
- s
- String
Chaîne contenant un nombre à convertir.
- provider
- IFormatProvider
Objet qui fournit des informations de mise en forme propres à la culture sur s
.
Retours
Entier 64 bits signé équivalant au nombre spécifié dans s
.
Implémente
Exceptions
s
a la valeur null
.
Le format de s
est incorrect.
s
représente un nombre inférieur à Int64.MinValue ou supérieur à Int64.MaxValue.
Exemples
L’exemple suivant est le gestionnaire d’événements click d’un formulaire Web. Il utilise le tableau retourné par la HttpRequest.UserLanguages propriété pour déterminer les paramètres régionaux de l’utilisateur. Il instancie ensuite un CultureInfo objet qui correspond à ces paramètres régionaux. L’objet NumberFormatInfo qui appartient à cet CultureInfo objet est ensuite passé à la Parse(String, IFormatProvider) méthode pour convertir l’entrée de l’utilisateur en valeur Int64 .
protected void OkToLong_Click(object sender, EventArgs e)
{
string locale;
long 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 = Int64.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 OkToLong_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToLong.Click
Dim locale As String
Dim culture As CultureInfo
Dim number As Long
' 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 = Int64.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 Parse(String, IFormatProvider) méthode est généralement utilisée pour convertir du texte qui peut être mis en forme de différentes manières en une Int64 valeur. Par exemple, il peut être utilisé pour convertir le texte entré par un utilisateur dans une zone de texte HTML en valeur numérique.
Le s
paramètre contient un certain nombre de formes :
[ws] [sign]digits[ws]
Les éléments entre crochets ([ et ]) sont facultatifs, et les autres éléments sont les suivants.
ws Espace blanc facultatif.
signe Un signe facultatif.
digits Séquence de chiffres allant de 0 à 9.
Le s
paramètre est interprété à l’aide du NumberStyles.Integer style . En plus des chiffres décimaux, seuls les espaces de début et de fin avec un signe de début sont autorisés. Pour définir explicitement les éléments de style qui peuvent être présents dans s
, utilisez la Int64.Parse(String, NumberStyles, IFormatProvider) méthode .
Le provider
paramètre est une IFormatProvider implémentation, telle qu’un NumberFormatInfo objet ou CultureInfo . Le provider
paramètre fournit des informations spécifiques à la culture sur le format de s
. Si provider
est null
, le NumberFormatInfo pour la culture actuelle est utilisé.
Voir aussi
S’applique à
Parse(String)
Convertit la représentation sous forme de chaîne d'un nombre en son équivalent entier 64 bits signé.
public:
static long Parse(System::String ^ s);
public static long Parse (string s);
static member Parse : string -> int64
Public Shared Function Parse (s As String) As Long
Paramètres
- s
- String
Chaîne contenant un nombre à convertir.
Retours
Entier 64 bits signé équivalant au nombre contenu dans s
.
Exceptions
s
a la valeur null
.
Le format de s
est incorrect.
s
représente un nombre inférieur à Int64.MinValue ou supérieur à Int64.MaxValue.
Exemples
L’exemple suivant montre comment convertir une valeur de chaîne en une valeur entière signée 64 bits à l’aide de la Int64.Parse(String) méthode . Il affiche ensuite la valeur entière longue résultante.
using System;
public class ParseInt64
{
public static void Main()
{
Convert(" 179042 ");
Convert(" -2041326 ");
Convert(" +8091522 ");
Convert(" 1064.0 ");
Convert(" 178.3");
Convert(String.Empty);
Convert(((decimal) Int64.MaxValue) + 1.ToString());
}
private static void Convert(string value)
{
try
{
long number = Int64.Parse(value);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to convert '{0}'.", value);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is out of range.", value);
}
}
}
// This example displays the following output to the console:
// Converted ' 179042 ' to 179042.
// Converted ' -2041326 ' to -2041326.
// Converted ' +8091522 ' to 8091522.
// Unable to convert ' 1064.0 '.
// Unable to convert ' 178.3'.
// Unable to convert ''.
// '92233720368547758071' is out of range.
open System
let convert value =
try
let number = Int64.Parse value
printfn $"Converted '{value}' to {number}."
with
| :? FormatException ->
printfn $"Unable to convert '{value}'."
| :? OverflowException ->
printfn $"'{value}' is out of range."
convert " 179042 "
convert " -2041326 "
convert " +8091522 "
convert " 1064.0 "
convert " 178.3"
convert String.Empty
decimal Int64.MaxValue + 1M
|> string
|> convert
// This example displays the following output to the console:
// Converted ' 179042 ' to 179042.
// Converted ' -2041326 ' to -2041326.
// Converted ' +8091522 ' to 8091522.
// Unable to convert ' 1064.0 '.
// Unable to convert ' 178.3'.
// Unable to convert ''.
// '92233720368547758071' is out of range.
Module ParseInt64
Public Sub Main()
Convert(" 179032 ")
Convert(" -2041326 ")
Convert(" +8091522 ")
Convert(" 1064.0 ")
Convert(" 178.3")
Convert(String.Empty)
Convert((CDec(Int64.MaxValue) + 1).ToString())
End Sub
Private Sub Convert(value As String)
Try
Dim number As Long = Int64.Parse(value)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", value)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range.", value)
End Try
End Sub
End Module
' This example displays the following output to the console:
' Converted ' 179032 ' to 179032.
' Converted ' -2041326 ' to -2041326.
' Converted ' +8091522 ' to 8091522.
' Unable to convert ' 1064.0 '.
' Unable to convert ' 178.3'.
' Unable to convert ''.
' '9223372036854775808' is out of range.
Remarques
Le s
paramètre contient un certain nombre de formes :
[ws] [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. |
sign | Signe facultatif. |
chiffres | Séquence de chiffres compris entre 0 et 9. |
Le s
paramètre est interprété à l’aide du NumberStyles.Integer style . En plus des chiffres décimaux, seuls les espaces de début et de fin avec un signe de début sont autorisés. Pour définir explicitement les éléments de style qui peuvent être présents dans s
, utilisez la Int64.Parse(String, NumberStyles) méthode ou Int64.Parse(String, NumberStyles, IFormatProvider) .
Le s
paramètre est analysé à l’aide des informations de mise en forme d’un NumberFormatInfo objet initialisé pour la culture système actuelle. Pour analyser une chaîne à l’aide des informations de mise en forme d’une autre culture, utilisez la Int64.Parse(String, NumberStyles, IFormatProvider) méthode .
Voir aussi
S’applique à
Parse(ReadOnlySpan<Char>, IFormatProvider)
Analyse une étendue de caractères dans une valeur.
public:
static long Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<long>::Parse;
public static long Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> int64
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As Long
Paramètres
- s
- ReadOnlySpan<Char>
Étendue des caractères à analyser.
- provider
- IFormatProvider
Objet qui fournit des informations de mise en forme propres à la culture concernant s
.
Retours
Résultat de l’analyse .s
Implémente
S’applique à
Parse(ReadOnlySpan<Byte>, IFormatProvider)
Analyse une étendue de caractères UTF-8 dans une valeur.
public:
static long Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<long>::Parse;
public static long Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> int64
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Long
Paramètres
- utf8Text
- ReadOnlySpan<Byte>
Étendue de caractères UTF-8 à analyser.
- provider
- IFormatProvider
Objet qui fournit des informations de mise en forme propres à la culture concernant utf8Text
.
Retours
Résultat de l’analyse .utf8Text
Implémente
S’applique à
Parse(String, NumberStyles)
Convertit une représentation d'un nombre sous forme de chaîne dans un style spécifié en entier 64 bits signé équivalent.
public:
static long Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static long Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> int64
Public Shared Function Parse (s As String, style As NumberStyles) As Long
Paramètres
- s
- String
Chaîne contenant un nombre à convertir.
- style
- NumberStyles
Combinaison d'opérations au niveau du bit de valeurs NumberStyles indiquant le format autorisé de s
. Une valeur typique à spécifier est Integer.
Retours
Entier 64 bits signé équivalant au nombre spécifié dans s
.
Exceptions
s
a la valeur null
.
style
n’est pas une valeur NumberStyles.
- ou -
style
n’est pas une combinaison des valeurs AllowHexSpecifier et HexNumber.
s
n’est pas dans un format compatible avec style
.
s
représente un nombre inférieur à Int64.MinValue ou supérieur à Int64.MaxValue.
- ou -
style
prend en charge les chiffres fractionnaires, mais s
inclut des chiffres fractionnaires différents de zéro.
Exemples
L’exemple suivant utilise la Int64.Parse(String, NumberStyles) méthode pour analyser les représentations sous forme de chaîne de plusieurs Int64 valeurs. La culture actuelle de l’exemple est en-US.
using System;
using System.Globalization;
public class ParseInt32
{
public static void Main()
{
Convert("104.0", NumberStyles.AllowDecimalPoint);
Convert("104.9", NumberStyles.AllowDecimalPoint);
Convert (" 106034", NumberStyles.None);
Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol |
NumberStyles.Number);
Convert(" $17,198,064.00", NumberStyles.AllowCurrencySymbol |
NumberStyles.Number);
Convert("103E06", NumberStyles.AllowExponent);
Convert("1200E-02", NumberStyles.AllowExponent);
Convert("1200E-03", NumberStyles.AllowExponent);
Convert("-1,345,791", NumberStyles.AllowThousands);
Convert("(1,345,791)", NumberStyles.AllowThousands |
NumberStyles.AllowParentheses);
Convert("FFCA00A0", NumberStyles.HexNumber);
Convert("0xFFCA00A0", NumberStyles.HexNumber);
}
private static void Convert(string value, NumberStyles style)
{
try
{
long number = Int64.Parse(value, style);
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
catch (FormatException)
{
Console.WriteLine("Unable to convert '{0}'.", value);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is out of range of the Int64 type.", value);
}
}
}
// The example displays the following output to the console:
// Converted '104.0' to 104.
// '104.9' is out of range of the Int64 type.
// Unable to convert ' 106034'.
// ' $17,198,064.42' is out of range of the Int64 type.
// Converted ' $17,198,064.00' to 17198064.
// Converted '103E06' to 103000000.
// Converted '1200E-02' to 12.
// '1200E-03' is out of range of the Int64 type.
// Unable to convert '-1,345,791'.
// Converted '(1,345,791)' to -1345791.
// Converted 'FFCA00A0' to 4291428512.
// Unable to convert '0xFFCA00A0'.
open System
open System.Globalization
let convert value (style: NumberStyles) =
try
let number = Int64.Parse(value, style)
printfn $"converted '{value}' to {number}."
with
| :? FormatException ->
printfn $"Unable to convert '{value}'."
| :? OverflowException ->
printfn $"'{value}' is out of range of the Int64 type."
convert "104.0" NumberStyles.AllowDecimalPoint
convert "104.9" NumberStyles.AllowDecimalPoint
convert " 106034" NumberStyles.None
convert " $17,198,064.42" (NumberStyles.AllowCurrencySymbol ||| NumberStyles.Number)
convert " $17,198,064.00" (NumberStyles.AllowCurrencySymbol ||| NumberStyles.Number)
convert "103E06" NumberStyles.AllowExponent
convert "1200E-02" NumberStyles.AllowExponent
convert "1200E-03" NumberStyles.AllowExponent
convert "-1,345,791" NumberStyles.AllowThousands
convert "(1,345,791)" (NumberStyles.AllowThousands ||| NumberStyles.AllowParentheses)
convert "FFCA00A0" NumberStyles.HexNumber
convert "0xFFCA00A0" NumberStyles.HexNumber
// The example displays the following output to the console:
// converted '104.0' to 104.
// '104.9' is out of range of the Int64 type.
// Unable to convert ' 106034'.
// ' $17,198,064.42' is out of range of the Int64 type.
// converted ' $17,198,064.00' to 17198064.
// converted '103E06' to 103000000.
// converted '1200E-02' to 12.
// '1200E-03' is out of range of the Int64 type.
// Unable to convert '-1,345,791'.
// converted '(1,345,791)' to -1345791.
// converted 'FFCA00A0' to 4291428512.
// Unable to convert '0xFFCA00A0'.
Imports System.Globalization
Module ParseInt64
Public Sub Main()
Convert("104.0", NumberStyles.AllowDecimalPoint)
Convert("104.9", NumberStyles.AllowDecimalPoint)
Convert (" 106034", NumberStyles.None)
Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol Or _
NumberStyles.Number)
Convert(" $17,198,064.00", NumberStyles.AllowCurrencySymbol Or _
NumberStyles.Number)
Convert("103E06", NumberStyles.AllowExponent)
Convert("1200E-02", NumberStyles.AllowExponent)
Convert("1200E-03", NumberStyles.AllowExponent)
Convert("-1,345,791", NumberStyles.AllowThousands)
Convert("(1,345,791)", NumberStyles.AllowThousands Or _
NumberStyles.AllowParentheses)
Convert("FFCA00A0", NumberStyles.HexNumber)
Convert("0xFFCA00A0", NumberStyles.HexNumber)
End Sub
Private Sub Convert(value As String, style As NumberStyles)
Try
Dim number As Long = Int64.Parse(value, style)
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", value)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range of the Int64 type.", value)
End Try
End Sub
End Module
' The example displays the following output to the console:
' Converted '104.0' to 104.
' '104.9' is out of range of the Int64 type.
' Unable to convert ' 106034'.
' ' $17,198,064.42' is out of range of the Int64 type.
' Converted ' $17,198,064.00' to 17198064.
' Converted '103E06' to 103000000.
' Converted '1200E-02' to 12.
' '1200E-03' is out of range of the Int64 type.
' Unable to convert '-1,345,791'.
' Converted '(1,345,791)' to -1345791.
' Converted 'FFCA00A0' to 4291428512.
' Unable to convert '0xFFCA00A0'.
Remarques
Le style
paramètre définit les éléments de style (tels que les espaces blancs, le symbole de signe positif ou négatif ou le symbole séparateur de milliers) autorisés dans le s
paramètre 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 . Selon la valeur de style
, le s
paramètre peut contenir les éléments suivants :
[ws] [$] [sign] [digits,]digits[.fractional_digits][e[sign]exponential_digits][ws]
Ou, si style
inclut AllowHexSpecifier:
[ws]hexdigits[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 NumberStyles.AllowLeadingWhite , et il peut apparaître à la fin de s si style inclut l’indicateur NumberStyles.AllowTrailingWhite . |
$ | Symbole monétaire spécifique à la culture. Sa position dans la chaîne est définie par les NumberFormatInfo.CurrencyNegativePattern propriétés 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 NumberStyles.AllowCurrencySymbol . |
sign | Signe facultatif. Le signe peut apparaître au début de s si style inclut l’indicateur NumberStyles.AllowLeadingSign , et il peut apparaître à la fin de s si style inclut l’indicateur NumberStyles.AllowTrailingSign . Les parenthèses peuvent être utilisées dans s pour indiquer une valeur négative si style inclut l’indicateur NumberStyles.AllowParentheses . |
chiffres fractional_digits exponential_digits |
Séquence de chiffres comprises entre 0 et 9. Pour fractional_digits, seul le chiffre 0 est valide. |
, | Symbole de séparateur de milliers propre à la culture. Le séparateur de milliers de la culture actuelle peut apparaître dans s si style inclut l’indicateur 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 NumberStyles.AllowDecimalPoint . Seul le chiffre 0 peut apparaître en tant que chiffre fractionnaire pour que l’opération d’analyse réussisse ; si fractional_digits inclut un autre chiffre, un OverflowException est levée. |
e | Caractère « e » ou « E », qui indique que la valeur est représentée en notation exponentielle. Le s paramètre peut représenter un nombre en notation exponentielle si style inclut l’indicateur NumberStyles.AllowExponent . |
hexdigits | Séquence de chiffres hexadécimaux de 0 à f ou de 0 à F. |
Notes
Tous 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 NumberStyles.None style) analyse toujours correctement si elle se trouve dans la plage du Int64 type. La plupart des membres restants NumberStyles contrôlent les éléments qui peuvent être, mais qui ne sont pas obligatoirement présents dans la chaîne d’entrée. Le tableau suivant indique comment les membres individuels NumberStyles affectent les éléments qui peuvent être présents dans s
.
Valeur NumberStyles | Éléments autorisés dans s en plus des chiffres |
---|---|
None | Élément digits uniquement. |
AllowDecimalPoint | Éléments décimaux ( . ) et à chiffres fractionnaires . |
AllowExponent | Le s paramètre peut également utiliser la notation exponentielle. Si s représente un nombre en notation exponentielle, la valeur numérique résultante ne peut pas inclure des chiffres fractionnaires non nuls. |
AllowLeadingWhite | Élément ws au début de s . |
AllowTrailingWhite | Élément ws à la fin de s . |
AllowLeadingSign | Élément sign au début de s . |
AllowTrailingSign | Élément sign à la fin de s . |
AllowParentheses | Élément sign sous la forme de parenthèses englobant la valeur numérique. |
AllowThousands | Élément séparateur de milliers ( , ). |
AllowCurrencySymbol | Élément $. |
Currency | Tout le monde. Le s paramètre 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 décimal ( . ). Le s paramètre peut également utiliser la notation exponentielle. |
Number | Éléments ws, sign, séparateur de milliers ( , ) et décimale ( . ). |
Any | Tous les styles, sauf s ne peuvent pas représenter un nombre hexadécimal. |
Si l’indicateur NumberStyles.AllowHexSpecifier est utilisé, s
doit être une valeur hexadécimale sans préfixe. Par exemple, « C9AF3 » analyse correctement, mais « 0xC9AF3 » ne le fait pas. Les seuls autres indicateurs qui peuvent être combinés avec le s
paramètre sont NumberStyles.AllowLeadingWhite et NumberStyles.AllowTrailingWhite. (L’énumération NumberStyles inclut un style numérique composite, NumberStyles.HexNumber, qui inclut les deux indicateurs d’espace blanc.)
Le s
paramètre est analysé à l’aide des informations de mise en forme d’un NumberFormatInfo objet initialisé pour la culture système actuelle. Pour spécifier la culture dont les informations de mise en forme sont utilisées pour l’opération d’analyse, appelez la Int64.Parse(String, NumberStyles, IFormatProvider) surcharge.
Voir aussi
S’applique à
Commentaires
Envoyer et afficher des commentaires pour