Decimal.TryParse Metod

Definition

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

Överlagringar

Name Description
TryParse(ReadOnlySpan<Byte>, Decimal)

Försöker konvertera ett UTF-8-teckensintervall som innehåller strängrepresentationen av ett tal till dess signerade decimalmotsvarighet.

TryParse(ReadOnlySpan<Char>, Decimal)

Konverterar spanrepresentationen av ett tal till dess Decimal motsvarighet med det kulturspecifika formatet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

TryParse(String, Decimal)

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Försöker parsa ett intervall med UTF-8 tecken till ett värde.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Försöker parsa ett teckenintervall till ett värde.

TryParse(String, IFormatProvider, Decimal)

Försöker parsa en sträng till ett värde.

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

Försöker parsa ett intervall med UTF-8 tecken till ett värde.

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

Konverterar spännviddsrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

TryParse(ReadOnlySpan<Byte>, Decimal)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Försöker konvertera ett UTF-8-teckensintervall som innehåller strängrepresentationen av ett tal till dess signerade decimalmotsvarighet.

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

Parametrar

utf8Text
ReadOnlySpan<Byte>

Ett intervall som innehåller UTF-8 tecken som representerar talet som ska konverteras.

result
Decimal

När den här metoden returnerar innehåller det signerade decimalvärdet som motsvarar talet i utf8Text om konverteringen lyckades eller noll om konverteringen misslyckades. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i resultatet skrivs över.

Returer

true om utf8Text har konverterats, annars false.

Gäller för

TryParse(ReadOnlySpan<Char>, Decimal)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar spanrepresentationen av ett tal till dess Decimal motsvarighet med det kulturspecifika formatet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

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

Parametrar

s
ReadOnlySpan<Char>

Ett intervall som innehåller de tecken som representerar talet som ska konverteras.

result
Decimal

När den här metoden returneras innehåller det Decimal tal som motsvarar det numeriska värdet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är eller null representerar ett tal som är Empty mindre än Decimal.MinValue eller större än Decimal.MaxValue. Den här parametern skickas uininitialiserad; alla värden som ursprungligen angavs i result skrivs över.

Returer

true om s har konverterats, annars false.

Gäller för

TryParse(String, Decimal)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse(string s, out 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

Parametrar

s
String

Strängrepresentationen av talet som ska konverteras.

result
Decimal

När den här metoden returneras innehåller det Decimal tal som motsvarar det numeriska värdet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är ett tal i ett giltigt format eller representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue. Den här parametern skickas uininitialiserad; alla värden som ursprungligen angavs i result skrivs över.

Returer

true om s har konverterats, annars false.

Exempel

I följande exempel används Decimal.TryParse(String, Decimal) metoden för att konvertera strängrepresentationer av numeriska värden till Decimal värden. Det förutsätter att en-US är den nuvarande kulturen.

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

Kommentarer

Den här överlagringen Decimal.Parse(String) skiljer sig från metoden genom att returnera ett booleskt värde som anger om parsningsåtgärden lyckades i stället för att returnera det parsade numeriska värdet. Det eliminerar behovet av att använda undantagshantering för att testa för en FormatException i händelse av att s den är ogiltig och inte kan parsas.

Parametern s innehåller ett antal av formuläret:

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

Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.

Element Description
Ws Valfritt blanksteg.
signera Ett valfritt tecken.
Siffror En sekvens med siffror mellan 0 och 9.
, En kulturspecifik tusentalsavgränsare.
. Ett kulturspecifikt decimaltecken.
fractional-digits En sekvens med siffror mellan 0 och 9.

Parametern s tolkas med formatet NumberStyles.Number . Det innebär att blanksteg och tusentalsavgränsare tillåts, men inte valutasymboler. Om du uttryckligen vill definiera de element (till exempel valutasymboler, tusentalsavgränsare och blanksteg) som kan finnas i sanvänder du Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) metodens överbelastning.

Parametern s parsas med formateringsinformationen i ett NumberFormatInfo objekt som initierats för den aktuella systemkulturen. Mer information finns i CurrentInfo. Om du vill parsa en sträng med formateringsinformationen för någon annan angiven kultur använder du Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) metodens överlagring.

Vid behov avrundas s värdet för med avrundning till närmaste.

Ett Decimal objekt har 29 siffror med precision. Om s representerar ett tal som har fler än 29 siffror, men har en bråkdelsdel och ligger inom intervallet MaxValue för och MinValue, avrundas talet, inte trunkeras, till 29 siffror med avrundning till närmaste.

Om en avgränsare påträffas i parametern s under en parsningsåtgärd och tillämpliga decimaler för valuta eller tal och gruppavgränsare är desamma, förutsätter parsningsåtgärden att avgränsaren är en decimalavgränsare i stället för en gruppavgränsare. Mer information om avgränsare finns i CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoroch NumberGroupSeparator.

Se även

Gäller för

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Försöker parsa ett intervall med UTF-8 tecken till ett värde.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IUtf8SpanParsable<System::Decimal>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Decimal) As Boolean

Parametrar

utf8Text
ReadOnlySpan<Byte>

Intervallet för UTF-8 tecken att parsa.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.

result
Decimal

Vid retur innehåller resultatet av parsning utf8Text eller ett odefinierat värde vid fel.

Returer

trueom utf8Text har parsats, annars . false

Gäller för

TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Försöker parsa ett teckenintervall till ett värde.

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

Parametrar

s
ReadOnlySpan<Char>

Det intervall med tecken som ska parsas.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.

result
Decimal

När den här metoden returneras innehåller resultatet av parsning seller ett odefinierat värde vid fel.

Returer

trueom s har parsats, annars . false

Gäller för

TryParse(String, IFormatProvider, Decimal)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Försöker parsa en sträng till ett värde.

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

Parametrar

s
String

Strängen som ska parsas.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.

result
Decimal

När den här metoden returneras innehåller resultatet av parsning s eller ett odefinierat värde vid fel.

Returer

trueom s har parsats, annars . false

Gäller för

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

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Försöker parsa ett intervall med UTF-8 tecken till ett värde.

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

Parametrar

utf8Text
ReadOnlySpan<Byte>

Intervallet för UTF-8 tecken att parsa.

style
NumberStyles

En bitvis kombination av talformat som kan finnas i utf8Text.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.

result
Decimal

Vid retur innehåller resultatet av parsning utf8Text eller ett odefinierat värde vid fel.

Returer

trueom utf8Text har parsats, annars . false

Gäller för

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

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar spännviddsrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
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);
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

Parametrar

s
ReadOnlySpan<Char>

Ett intervall som innehåller de tecken som representerar talet som ska konverteras.

style
NumberStyles

En bitvis kombination av uppräkningsvärden som anger det tillåtna formatet för s. Ett typiskt värde att ange är Number.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik parsningsinformation om s.

result
Decimal

När den här metoden returneras innehåller det Decimal tal som motsvarar det numeriska värdet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är ett tal i ett format som är kompatibelt med style, eller representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue. Den här parametern skickas uininitialiserad; alla värden som ursprungligen angavs i result skrivs över.

Returer

true om s har konverterats, annars false.

Gäller för

TryParse(String, NumberStyles, IFormatProvider, Decimal)

Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs
Källa:
Decimal.cs

Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet. Ett returvärde anger om konverteringen lyckades eller misslyckades.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out 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

Parametrar

s
String

Strängrepresentationen av talet som ska konverteras.

style
NumberStyles

En bitvis kombination av uppräkningsvärden som anger det tillåtna formatet för s. Ett typiskt värde att ange är Number.

provider
IFormatProvider

Ett objekt som tillhandahåller kulturspecifik parsningsinformation om s.

result
Decimal

När den här metoden returneras innehåller det Decimal tal som motsvarar det numeriska värdet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är ett tal i ett format som är kompatibelt med style, eller representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue. Den här parametern skickas uininitialiserad; alla värden som ursprungligen angavs i result skrivs över.

Returer

true om s har konverterats, annars false.

Undantag

style är inte ett NumberStyles värde.

-eller-

style är värdet AllowHexSpecifier .

Exempel

I följande exempel visas hur metoden används TryParse(String, NumberStyles, IFormatProvider, Decimal) för att parsa strängrepresentationen av ett tal som har ett visst format och formateras med hjälp av konventionerna i en viss kultur.

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

Kommentarer

Den här överlagringen Decimal.Parse(String, NumberStyles, IFormatProvider) skiljer sig från metoden genom att returnera ett booleskt värde som anger om parsningsåtgärden lyckades i stället för att returnera det parsade numeriska värdet. Det eliminerar behovet av att använda undantagshantering för att testa för en FormatException i händelse av att s den är ogiltig och inte kan parsas.

Parametern style definierar det tillåtna formatet för parametern s för att parsningsåtgärden ska lyckas. Det måste vara en kombination av bitflaggor från NumberStyles uppräkningen. Följande NumberStyles medlemmar stöds inte:

Beroende på värdet för formatmallen kan parametern s innehålla följande element:

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

Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.

Element Description
Ws Valfritt blanksteg. Tomt utrymme kan visas i början av s om style innehåller NumberStyles.AllowLeadingWhite flaggan. Den kan visas i slutet av s om style den NumberStyles.AllowTrailingWhite innehåller flaggan.
$ En kulturspecifik valutasymbol. Dess position i strängen definieras av NumberFormatInfo.CurrencyNegativePattern egenskaperna eller NumberFormatInfo.CurrencyPositivePattern för objektet som NumberFormatInfo returneras av IFormatProvider.GetFormat parametermetoden provider . Valutasymbolen kan visas i s om style den NumberStyles.AllowCurrencySymbol innehåller flaggan.
signera Ett valfritt tecken.
Siffror En sekvens med siffror mellan 0 och 9.
. Ett kulturspecifikt decimaltecken.
fractional-digits En sekvens med siffror mellan 0 och 9.

Parametern style anger parameterns tillåtna format s och kan vara en eller flera NumberStyles uppräknade konstanter som kombineras med en bitvis OR-åtgärd. Om style är null s tolkas det med formatet NumberStyles.Number .

Parametern provider är en IFormatProvider implementering, till exempel ett objekt eller NumberFormatInfo ett CultureInfo objekt. Parametern provider tillhandahåller kulturspecifik information som används vid parsning. Om provider är nullanvänds den aktuella trådkulturen.

Ett Decimal objekt har 29 siffror med precision. Om s representerar ett tal som har fler än 29 siffror, men har en bråkdelsdel och ligger inom intervallet MaxValue för och MinValue, avrundas talet, inte trunkeras, till 29 siffror med avrundning till närmaste.

Om en avgränsare påträffas i parametern s under en parsningsåtgärd och tillämpliga decimaler för valuta eller tal och gruppavgränsare är desamma, förutsätter parsningsåtgärden att avgränsaren är en decimalavgränsare i stället för en gruppavgränsare. Mer information om avgränsare finns i CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparatoroch NumberGroupSeparator.

Se även

Gäller för