Decimal.Parse Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet.
Överlagringar
| Name | Description |
|---|---|
| Parse(String) |
Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet. |
| Parse(ReadOnlySpan<Byte>, IFormatProvider) |
Parsar ett intervall med UTF-8 tecken till ett värde. |
| Parse(ReadOnlySpan<Char>, IFormatProvider) |
Parsar ett teckenintervall till ett värde. |
| Parse(String, NumberStyles) |
Konverterar strängrepresentationen av ett tal i ett angivet format till dess Decimal motsvarighet. |
| Parse(String, IFormatProvider) |
Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet med den angivna kulturspecifika formatinformationen. |
| Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider) |
Parsar ett intervall med UTF-8 tecken till ett värde. |
| Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Konverterar spännviddsrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet. |
| Parse(String, NumberStyles, IFormatProvider) |
Konverterar strängrepresentationen av ett tal till dess Decimal motsvarighet med det angivna formatet och det kulturspecifika formatet. |
Parse(String)
- 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.
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
Parametrar
- s
- String
Strängrepresentationen av talet som ska konverteras.
Returer
Motsvarigheten till talet i s.
Undantag
s är null.
s är inte i rätt format.
s representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue.
Exempel
I följande kodexempel används Parse(String) metoden för att parsa strängrepresentationer av Decimal värden.
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'.
Kommentarer
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 vill definiera de element (till exempel valutasymboler, tusentalsavgränsare och blanksteg) som kan finnas i sanvänder du antingen Decimal.Parse(String, NumberStyles) metoden eller Decimal.Parse(String, NumberStyles, IFormatProvider) .
Parametern s parsas med formateringsinformationen i en NumberFormatInfo initierad för den aktuella systemkulturen. Mer information finns i CurrentInfo. Om du vill parsa en sträng med formateringsinformationen för någon annan kultur använder du Decimal.Parse(String, IFormatProvider) metoden eller Decimal.Parse(String, NumberStyles, IFormatProvider) .
Vid behov avrundas s värdet för med avrundning till närmaste.
A Decimal 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
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
Parsar ett intervall med UTF-8 tecken till ett värde.
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
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Intervallet för UTF-8 tecken att parsa.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.
Returer
Resultatet av parsning utf8Text.
Implementeringar
Gäller för
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
Parsar ett teckenintervall till ett värde.
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
Parametrar
- s
- ReadOnlySpan<Char>
Det intervall med tecken som ska parsas.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
Returer
Resultatet av parsning s.
Implementeringar
Gäller för
Parse(String, NumberStyles)
- 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 i ett angivet format till dess Decimal motsvarighet.
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
Parametrar
- s
- String
Strängrepresentationen av talet som ska konverteras.
- style
- NumberStyles
En bitvis kombination av NumberStyles värden som anger de formatelement som kan finnas i s. Ett typiskt värde att ange är Number.
Returer
Talet Decimal som motsvarar det tal som finns i s enligt angivet av style.
Undantag
s är null.
s är inte i rätt format.
s representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue
Exempel
I följande kodexempel används Parse(String, NumberStyles) metoden för att parsa strängrepresentationerna av värden med hjälp av Decimal en-US kultur.
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.
Kommentarer
Parametern style definierar formatelementen (till exempel tusentalsavgränsare, blanksteg och valutasymboler) som tillåts i 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 stylekan 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, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingWhite flaggan. |
| $ | En kulturspecifik valutasymbol. Dess position i strängen definieras av NumberFormatInfo.CurrencyNegativePattern egenskaperna och NumberFormatInfo.CurrencyPositivePattern för den aktuella kulturen. Den aktuella kulturens valutasymbol kan visas i s om style den NumberStyles.AllowCurrencySymbol innehåller flaggan. |
| signera | Ett valfritt tecken. Tecknet kan visas i början av s om style innehåller NumberStyles.AllowLeadingSign flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingSign flaggan. Parenteser kan användas i s för att ange ett negativt värde om style den NumberStyles.AllowParentheses innehåller flaggan. |
| Siffror | En sekvens med siffror mellan 0 och 9. |
| , | En kulturspecifik tusentalsavgränsare. Den aktuella kulturens tusentalsavgränsare kan visas i s om style den NumberStyles.AllowThousands innehåller flaggan. |
| . | Ett kulturspecifikt decimaltecken. Den aktuella kulturens decimaltecken kan visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| fractional-digits | En sekvens med siffror mellan 0 och 9. Bråksiffror kan bara visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| e | Tecknet "e" eller "E", som anger att värdet representeras i exponentiell notation. Parametern s kan representera ett tal i exponentiell notation om style den NumberStyles.AllowExponent innehåller flaggan. |
Note
Alla avslutande NUL-tecken (U+0000) i s ignoreras av parsningsåtgärden, oavsett argumentets style värde.
En sträng med endast siffror (vilket motsvarar None formatet) parsar alltid korrekt om den är i typintervallet Decimal . De återstående NumberStyles medlemmarna styr element som kan vara men inte måste finnas i indatasträngen. Följande tabell visar hur enskilda NumberStyles medlemmar påverkar de element som kan finnas i s.
| NumberStyles-värde | Element som tillåts i s utöver siffror |
|---|---|
| None | Endast elementet digits . |
| AllowDecimalPoint | Elementen . och fractional-digits . |
| AllowExponent | Parametern s kan också använda exponentiell notation. Den här flaggan stöder värden i formuläret siffrorE-siffror; ytterligare flaggor behövs för att parsa strängar med element som positiva eller negativa tecken och decimaltecken. |
| AllowLeadingWhite |
WS-elementet i början av s. |
| AllowTrailingWhite |
WS-elementet i slutet av s. |
| AllowLeadingSign |
Teckenelementet i början av s. |
| AllowTrailingSign |
Teckenelementet i slutet av s. |
| AllowParentheses | Teckenelementet i form av parenteser som omger det numeriska värdet. |
| AllowThousands | Elementet , . |
| AllowCurrencySymbol | Elementet $ . |
| Currency | Alla. Parametern s kan inte representera ett hexadecimalt tal eller ett tal i exponentiell notation. |
| Float |
WS-elementet i början eller slutet av s, signera i början av soch symbolen.. Parametern s kan också använda exponentiell notation. |
| Number | Elementen ws, sign,och.. |
| Any | Alla format, förutom s kan inte representera ett hexadecimalt tal. |
Parametern s parsas med formateringsinformationen i ett NumberFormatInfo objekt som initierats för den aktuella systemkulturen. Mer information finns i CurrentInfo.
A Decimal 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, styles innehåller NumberStyles.AllowThousands värdena och NumberStyles.AllowDecimalPoint , och den tillämpliga valutan eller talets decimaler 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
Parse(String, IFormatProvider)
- 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 den angivna kulturspecifika formatinformationen.
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
Parametrar
- s
- String
Strängrepresentationen av talet som ska konverteras.
- provider
- IFormatProvider
En IFormatProvider som tillhandahåller kulturspecifik parsningsinformation om s.
Returer
Talet Decimal som motsvarar det tal som finns i s enligt angivet av provider.
Implementeringar
Undantag
s är null.
s inte har rätt format.
s representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue.
Exempel
Följande exempel är knappklickshändelsehanteraren för ett webbformulär. Den använder matrisen som returneras av HttpRequest.UserLanguages egenskapen för att fastställa användarens nationella inställningar. Det instansierar sedan ett CultureInfo objekt som motsvarar det nationella språket. Objektet NumberFormatInfo som tillhör objektet CultureInfo skickas sedan till Parse(String, IFormatProvider) metoden för att konvertera användarens indata till ett Decimal värde.
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
Kommentarer
Den här överlagringen Parse(String, IFormatProvider) av metoden används ofta för att konvertera text som kan formateras på flera olika sätt till ett Decimal värde. Den kan till exempel användas för att konvertera texten som en användare har angett till en HTML-textruta till ett numeriskt värde.
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 vill definiera de element (till exempel valutasymboler, tusentalsavgränsare och blanksteg) som kan finnas i sanvänder du Decimal.Parse(String, NumberStyles, IFormatProvider) metoden .
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
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
- Källa:
- Decimal.cs
Parsar ett intervall med UTF-8 tecken till ett värde.
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
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.
Returer
Resultatet av parsning utf8Text.
Implementeringar
Gäller för
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- 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.
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
Parametrar
- s
- ReadOnlySpan<Char>
Det intervall som innehåller de tecken som representerar talet som ska konverteras.
- style
- NumberStyles
En bitvis kombination av NumberStyles värden som anger de formatelement som kan finnas i s. Ett typiskt värde att ange är Number.
- provider
- IFormatProvider
Ett IFormatProvider objekt som tillhandahåller kulturspecifik information om formatet för s.
Returer
Talet Decimal som motsvarar talet som finns i s enligt angivet av style och provider.
Implementeringar
Gäller för
Parse(String, NumberStyles, IFormatProvider)
- 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.
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
Parametrar
- s
- String
Strängrepresentationen av talet som ska konverteras.
- style
- NumberStyles
En bitvis kombination av NumberStyles värden som anger de formatelement som kan finnas i s. Ett typiskt värde att ange är Number.
- provider
- IFormatProvider
Ett IFormatProvider objekt som tillhandahåller kulturspecifik information om formatet för s.
Returer
Talet Decimal som motsvarar talet som finns i s enligt angivet av style och provider.
Implementeringar
Undantag
s är inte i rätt format.
s representerar ett tal som är mindre än Decimal.MinValue eller större än Decimal.MaxValue.
s är null.
Exempel
I följande exempel används en mängd style olika parametrar för provider att parsa strängrepresentationerna av Decimal värden.
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.
Kommentarer
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 stylekan 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 |
|---|---|
| $ | En kulturspecifik valutasymbol. Dess position i strängen definieras av CurrencyNegativePattern egenskaperna och CurrencyPositivePattern för objektet som NumberFormatInfo returneras av GetFormat parametermetoden provider . Valutasymbolen kan visas i s om style den NumberStyles.AllowCurrencySymbol innehåller flaggan. |
| Ws | Valfritt blanksteg. Tomt utrymme kan visas i början av s om style innehåller NumberStyles.AllowLeadingWhite flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingWhite flaggan. |
| signera | Ett valfritt tecken. Tecknet kan visas i början av s om style innehåller NumberStyles.AllowLeadingSign flaggan, och det kan visas i slutet av s om style innehåller NumberStyles.AllowTrailingSign flaggan. Parenteser kan användas i s för att ange ett negativt värde om style den NumberStyles.AllowParentheses innehåller flaggan. |
| Siffror | En sekvens med siffror mellan 0 och 9. |
| , | En kulturspecifik tusentalsavgränsare. Tusentalsavgränsaren för kulturen som definieras av provider kan visas i s om style den NumberStyles.AllowThousands innehåller flaggan. |
| . | Ett kulturspecifikt decimaltecken. Decimaltecknet för kulturen som definieras av provider kan visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| fractional-digits | En sekvens med siffror mellan 0 och 9. Bråksiffror kan bara visas i s om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| e | Tecknet "e" eller "E", som anger att värdet representeras i exponentiell notation. Parametern s kan representera ett tal i exponentiell notation om style den NumberStyles.AllowExponent innehåller flaggan. |
Note
Alla avslutande NUL-tecken (U+0000) i s ignoreras av parsningsåtgärden, oavsett argumentets style värde.
En sträng med endast siffror (vilket motsvarar None formatet) parsar alltid korrekt om den är i typintervallet Decimal . De återstående NumberStyles medlemmarna styr element som kan vara men inte måste finnas i indatasträngen. Följande tabell visar hur enskilda NumberStyles medlemmar påverkar de element som kan finnas i s.
| NumberStyles-värde | Element som tillåts i s utöver siffror |
|---|---|
| None | Endast elementet digits . |
| AllowDecimalPoint | Elementen . och fractional-digits . |
| AllowExponent | Parametern s kan också använda exponentiell notation. Den här flaggan stöder värden i formuläret siffrorE-siffror; ytterligare flaggor behövs för att parsa strängar med element som positiva eller negativa tecken och decimaltecken. |
| AllowLeadingWhite |
WS-elementet i början av s. |
| AllowTrailingWhite |
WS-elementet i slutet av s. |
| AllowLeadingSign |
Teckenelementet i början av s. |
| AllowTrailingSign |
Teckenelementet i slutet av s. |
| AllowParentheses | Teckenelementet i form av parenteser som omger det numeriska värdet. |
| AllowThousands | Elementet , . |
| AllowCurrencySymbol | Elementet $ . |
| Currency | Alla. Parametern s kan inte representera ett hexadecimalt tal eller ett tal i exponentiell notation. |
| Float |
WS-elementet i början eller slutet av s, signera i början av soch . Parametern s kan också använda exponentiell notation. |
| Number | Elementen ws, sign, ,och . |
| Any | Alla format, förutom s kan inte representera ett hexadecimalt tal. |
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.