Decimal.TryParse Methode

Definitie

Converteert de tekenreeksweergave van een getal naar het Decimal equivalent ervan. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

Overloads

Name Description
TryParse(String, NumberStyles, IFormatProvider, Decimal)

Converteert de tekenreeksweergave van een getal naar het Decimal equivalent ervan met behulp van de opgegeven stijl en cultuurspecifieke notatie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

TryParse(String, Decimal)

Converteert de tekenreeksweergave van een getal naar het Decimal equivalent ervan. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

TryParse(ReadOnlySpan<Char>, Decimal)

Converteert de spanweergave van een getal naar Decimal het equivalent ervan met behulp van de cultuurspecifieke notatie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)

Converteert de spanweergave van een getal naar Decimal het equivalent ervan met behulp van de opgegeven stijl en cultuurspecifieke notatie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Converteert de tekenreeksweergave van een getal naar het Decimal equivalent ervan met behulp van de opgegeven stijl en cultuurspecifieke notatie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parameters

s
String

De tekenreeksweergave van het getal dat moet worden geconverteerd.

style
NumberStyles

Een bitsgewijze combinatie van opsommingswaarden die de toegestane notatie van s. Een typische waarde die moet worden opgegeven, is Number.

provider
IFormatProvider

Een object dat cultuurspecifieke parseringsinformatie over slevert.

result
Decimal

Wanneer deze methode wordt geretourneerd, bevat het Decimal getal dat gelijk is aan de numerieke waarde in s, als de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de s parameter wel of Emptyniet een getal is in een notatie die compatibel is metstyle, of een getal vertegenwoordigt dat kleiner is null dan Decimal.MinValue of groter is dan Decimal.MaxValue. Deze parameter wordt doorgegeven door uininitialized; elke waarde die oorspronkelijk is opgegeven result , wordt overschreven.

Retouren

trueals s deze is geconverteerd; anders. false

Uitzonderingen

style is geen NumberStyles waarde.

– of –

style is de AllowHexSpecifier waarde.

Voorbeelden

In het volgende voorbeeld ziet u hoe de TryParse(String, NumberStyles, IFormatProvider, Decimal) methode wordt gebruikt om de tekenreeksweergave te parseren van een getal met een bepaalde stijl en is opgemaakt met behulp van de conventies van een bepaalde cultuur.

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

// Parse currency value using en-GB culture.
value = "£1,097.63";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
culture = CultureInfo.CreateSpecificCulture("en-GB");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '£1,097.63' to 1097.63.

value = "1345,978";
style = NumberStyles.AllowDecimalPoint;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '1345,978' to 1345.978.

value = "1.345,978";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
culture = CultureInfo.CreateSpecificCulture("es-ES");
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '1.345,978' to 1345.978.

value = "1 345,978";
if (Decimal.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Unable to convert '1 345,978'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let culture = CultureInfo.CreateSpecificCulture "en-GB"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '£1,097.63' to 1097.63.

let value = "1345,978"
let style = NumberStyles.AllowDecimalPoint
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '1345,978' to 1345.978.

let value = "1.345,978"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let culture = CultureInfo.CreateSpecificCulture "es-ES"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Converted '1.345,978' to 1345.978.

let value = "1 345,978"
match Decimal.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ -> 
    printfn $"Unable to convert '{value}'."
// Displays:
//       Unable to convert '1 345,978'.
Dim value As String
Dim style As NumberStyles
Dim culture As CultureInfo
Dim number As Decimal

' Parse currency value using en-GB culture.
value = "£1,097.63"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
culture = CultureInfo.CreateSpecificCulture("en-GB")
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays: 
'       Converted '£1,097.63' to 1097.63.

value = "1345,978"
style = NumberStyles.AllowDecimalPoint
culture = CultureInfo.CreateSpecificCulture("fr-FR")
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays:
'       Converted '1345,978' to 1345.978.

value = "1.345,978"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
culture = CultureInfo.CreateSpecificCulture("es-ES")
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays: 
'       Converted '1.345,978' to 1345.978.

value = "1 345,978"
If Decimal.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If    
' Displays:
'       Unable to convert '1 345,978'.

Opmerkingen

Deze overbelasting verschilt van de Decimal.Parse(String, NumberStyles, IFormatProvider) methode door een Booleaanse waarde te retourneren die aangeeft of de parseringsbewerking is geslaagd in plaats van de geparseerde numerieke waarde te retourneren. Het elimineert de noodzaak om uitzonderingsafhandeling te gebruiken om te testen op een FormatException in het geval dat s ongeldig is en niet kan worden geparseerd.

De style parameter definieert de toegestane indeling van de parameter om de s parseringsbewerking te voltooien. Dit moet een combinatie zijn van bitvlagmen uit de NumberStyles opsomming. De volgende NumberStyles leden worden niet ondersteund:

Afhankelijk van de waarde van de stijl kan de s parameter de volgende elementen bevatten:

[ws][$][teken][cijfers;]digits[.fractional-digits][e[sign]digits][ws]

Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.

Element Beschrijving
Ws Optionele witruimte. Witruimte kan aan het begin van s de styleNumberStyles.AllowLeadingWhite vlag worden weergegeven. Deze kan aan het einde van s de styleNumberStyles.AllowTrailingWhite vlag worden weergegeven.
$ Een cultuurspecifiek valutasymbool. De positie in de tekenreeks wordt gedefinieerd door de NumberFormatInfo.CurrencyNegativePattern of NumberFormatInfo.CurrencyPositivePattern eigenschappen van het NumberFormatInfo object dat wordt geretourneerd door de IFormatProvider.GetFormat methode van de provider parameter. Het valutasymbool kan worden weergegeven s als style deze de NumberStyles.AllowCurrencySymbol vlag bevat.
ondertekenen Een optioneel teken.
Cijfers Een reeks cijfers tussen 0 en 9.
. Een cultuurspecifiek decimaalteken.
fractionele cijfers Een reeks cijfers tussen 0 en 9.

De style parameter geeft de toegestane indeling van de s parameter op en kan een of meer NumberStyles geïnventariseerd constanten zijn gecombineerd met een bitwise OR-bewerking. Als style null is, s wordt deze geïnterpreteerd met behulp van de NumberStyles.Number stijl.

De provider parameter is een IFormatProvider implementatie zoals een NumberFormatInfo of CultureInfo object. De provider parameter levert cultuurspecifieke informatie die wordt gebruikt bij parseren. Als provider dat het is null, wordt de huidige threadcultuur gebruikt.

Een Decimal object heeft 29 cijfers precisie. Als s dit een getal vertegenwoordigt dat meer dan 29 cijfers heeft, maar een breukdeel heeft en zich binnen het bereik van MaxValue en MinValuebevindt, wordt het getal afgerond, niet afgekapt, tot 29 cijfers met afronding naar het dichtstbijzijnde.

Als er tijdens een parseringsbewerking een scheidingsteken wordt aangetroffen in de s parameter en de toepasselijke valuta- of getaldecimaaltekens en groepsscheidingstekens hetzelfde zijn, wordt bij de parseringsbewerking ervan uitgegaan dat het scheidingsteken een decimaalteken is in plaats van een scheidingsteken voor groepen. Zie , NumberDecimalSeparator, en NumberGroupSeparatorCurrencyGroupSeparatorvoor meer informatie over scheidingstekens CurrencyDecimalSeparator.

Zie ook

Van toepassing op

TryParse(String, Decimal)

Converteert de tekenreeksweergave van een getal naar het Decimal equivalent ervan. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse(string s, out decimal result);
static member TryParse : string * decimal -> bool
Public Shared Function TryParse (s As String, ByRef result As Decimal) As Boolean

Parameters

s
String

De tekenreeksweergave van het getal dat moet worden geconverteerd.

result
Decimal

Wanneer deze methode wordt geretourneerd, bevat het Decimal getal dat gelijk is aan de numerieke waarde in s, als de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de s parameter een getal Emptyin een geldige notatie is null of een getal kleiner is dan Decimal.MinValue of groter is dan Decimal.MaxValue. Deze parameter wordt doorgegeven door uininitialized; elke waarde die oorspronkelijk is opgegeven result , wordt overschreven.

Retouren

trueals s deze is geconverteerd; anders. false

Voorbeelden

In het volgende voorbeeld wordt de Decimal.TryParse(String, Decimal) methode gebruikt om de tekenreeksweergaven van numerieke waarden te converteren naar Decimal waarden. Hierbij wordt ervan uitgegaan dat en-US de huidige cultuur is.

string value;
decimal number;

// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a floating-point value with a currency symbol and a
// thousands separator.
value = "$1,643.57";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse value in exponential notation.
value = "-1.643e6";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a negative integer value.
value = "-1689346178821";
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output to the console:
//       1643.57
//       Unable to parse '$1,643.57'.
//       Unable to parse '-1.643e6'.
//       -1689346178821
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse a floating-point value with a currency symbol and a
// thousands separator.
let value = "$1,643.57"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{value}'."

// Parse value in exponential notation.
let value = "-1.643e6"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{value}'."

// Parse a negative integer value.
let value = "-1689346178821"
match Decimal.TryParse value with
| true, number ->
    printfn $"{number}"
| _ -> 
    printfn $"Unable to parse '{value}'."
// The example displays the following output to the console:
//       1643.57
//       Unable to parse '$1,643.57'.
//       Unable to parse '-1.643e6'.
//       -1689346178821
Dim value As String
Dim number As Decimal

' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Decimal.TryParse(value, number) Then
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)      
End If   

' Parse a floating-point value with a currency symbol and a 
' thousands separator.
value = "$1,643.57"
If Decimal.TryParse(value, number) Then
   Console.WriteLine(number)  
Else
   Console.WriteLine("Unable to parse '{0}'.", value)   
End If

' Parse value in exponential notation.
value = "-1.643e6"
If Decimal.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)   
End If

' Parse a negative integer value.
value = "-1689346178821"
If Decimal.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)   
End If
' The example displays the following output to the console:
'       1643.57
'       Unable to parse '$1,643.57'.
'       Unable to parse '-1.643e6'.
'       -1689346178821

Opmerkingen

Deze overbelasting verschilt van de Decimal.Parse(String) methode door een Booleaanse waarde te retourneren die aangeeft of de parseringsbewerking is geslaagd in plaats van de geparseerde numerieke waarde te retourneren. Het elimineert de noodzaak om uitzonderingsafhandeling te gebruiken om te testen op een FormatException in het geval dat s ongeldig is en niet kan worden geparseerd.

De parameter s bevat een getal van het formulier:

[ws][teken][cijfers,]digits[.fractional-digits][ws]

Elementen in vierkante haken ([ en ]) zijn optioneel. In de volgende tabel wordt elk element beschreven.

Element Beschrijving
Ws Optionele witruimte.
ondertekenen Een optioneel teken.
Cijfers Een reeks cijfers tussen 0 en 9.
, Een cultuurspecifiek scheidingsteken voor duizendtallen.
. Een cultuurspecifiek decimaalteken.
fractionele cijfers Een reeks cijfers tussen 0 en 9.

Parameter s wordt geïnterpreteerd met behulp van de NumberStyles.Number stijl. Dit betekent dat witruimte en scheidingstekens voor duizendtallen zijn toegestaan, maar valutasymbolen niet. Als u de elementen (zoals valutasymbolen, scheidingstekens voor duizendtallen en witruimte) expliciet wilt definiëren, sgebruikt u de overbelasting van de Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) methode.

De parameter s wordt geparseerd met behulp van de opmaakgegevens in een NumberFormatInfo object dat is geïnitialiseerd voor de huidige systeemcultuur. Zie CurrentInfo voor meer informatie. Als u een tekenreeks wilt parseren met behulp van de opmaakgegevens van een andere opgegeven cultuur, gebruikt u de overbelasting van de Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) methode.

Indien nodig wordt de waarde afgerond s met afronding naar het dichtstbijzijnde.

Een Decimal object heeft 29 cijfers precisie. Als s dit een getal vertegenwoordigt dat meer dan 29 cijfers heeft, maar een breukdeel heeft en zich binnen het bereik van MaxValue en MinValuebevindt, wordt het getal afgerond, niet afgekapt, tot 29 cijfers met afronding naar het dichtstbijzijnde.

Als tijdens een parseringsbewerking een scheidingsteken wordt aangetroffen in de s parameter en de toepasselijke valuta- of getaldecimaaltekens en groepsscheidingstekens hetzelfde zijn, wordt bij de parseringsbewerking ervan uitgegaan dat het scheidingsteken een decimaalteken is in plaats van een scheidingsteken voor groepen. Zie , NumberDecimalSeparator, en NumberGroupSeparatorCurrencyGroupSeparatorvoor meer informatie over scheidingstekens CurrencyDecimalSeparator.

Zie ook

Van toepassing op

TryParse(ReadOnlySpan<Char>, Decimal)

Converteert de spanweergave van een getal naar Decimal het equivalent ervan met behulp van de cultuurspecifieke notatie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse(ReadOnlySpan<char> s, out decimal result);
static member TryParse : ReadOnlySpan<char> * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Decimal) As Boolean

Parameters

s
ReadOnlySpan<Char>

Een bereik met de tekens die het getal vertegenwoordigen dat moet worden geconverteerd.

result
Decimal

Wanneer deze methode wordt geretourneerd, bevat het Decimal getal dat gelijk is aan de numerieke waarde in s, als de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de s parameter een getal kleiner is null dan EmptyDecimal.MinValue of groter is dan Decimal.MaxValue. Deze parameter wordt doorgegeven door uininitialized; elke waarde die oorspronkelijk is opgegeven result , wordt overschreven.

Retouren

trueals s deze is geconverteerd; anders. false

Van toepassing op

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)

Converteert de spanweergave van een getal naar Decimal het equivalent ervan met behulp van de opgegeven stijl en cultuurspecifieke notatie. Een retourwaarde geeft aan of de conversie is geslaagd of mislukt.

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parameters

s
ReadOnlySpan<Char>

Een bereik met de tekens die het getal vertegenwoordigen dat moet worden geconverteerd.

style
NumberStyles

Een bitsgewijze combinatie van opsommingswaarden die de toegestane notatie van s. Een typische waarde die moet worden opgegeven, is Number.

provider
IFormatProvider

Een object dat cultuurspecifieke parseringsinformatie over slevert.

result
Decimal

Wanneer deze methode wordt geretourneerd, bevat het Decimal getal dat gelijk is aan de numerieke waarde in s, als de conversie is geslaagd of nul als de conversie is mislukt. De conversie mislukt als de s parameter wel of Emptyniet een getal is in een notatie die compatibel is metstyle, of een getal vertegenwoordigt dat kleiner is null dan Decimal.MinValue of groter is dan Decimal.MaxValue. Deze parameter wordt doorgegeven door uininitialized; elke waarde die oorspronkelijk is opgegeven result , wordt overschreven.

Retouren

trueals s deze is geconverteerd; anders. false

Van toepassing op