Decimal.TryParse Decimal.TryParse Decimal.TryParse Decimal.TryParse Method

定義

数値の文字列形式を、それと等価の Decimal に変換します。Converts the string representation of a number to its Decimal equivalent. 戻り値は変換が成功したか失敗したかを示します。A return value indicates whether the conversion succeeded or failed.

オーバーロード

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

指定したスタイルとカルチャ固有の書式を使用して、文字列形式の数値をそれと等価の Decimal に変換します。Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format. 戻り値は変換が成功したか失敗したかを示します。A return value indicates whether the conversion succeeded or failed.

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

数値の文字列形式を、それと等価の Decimal に変換します。Converts the string representation of a number to its Decimal equivalent. 戻り値は変換が成功したか失敗したかを示します。A return value indicates whether the conversion succeeded or failed.

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

指定したスタイルとカルチャ固有の書式を使用して、文字列形式の数値をそれと等価の Decimal に変換します。Converts the string representation of a number to its Decimal equivalent using the specified style and culture-specific format. 戻り値は変換が成功したか失敗したかを示します。A return value indicates whether the conversion succeeded or failed.

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 *  -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

パラメーター

s
String String String String

変換する数値の文字列形式。The string representation of the number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

s で使用可能な書式を示す、列挙値のビットごとの組み合わせ。A bitwise combination of enumeration values that indicates the permitted format of s. 通常指定する値は、Number です。A typical value to specify is Number.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

s に関するカルチャ固有の解析情報を提供するオブジェクト。An object that supplies culture-specific parsing information about s.

result
Decimal Decimal Decimal Decimal

変換が成功した場合は、このメソッドから制御が返されるときに s に格納された数値と等価の Decimal 数を格納します。変換に失敗した場合は 0 を格納します。When this method returns, contains the Decimal number that is equivalent to the numeric value contained in s, if the conversion succeeded, or zero if the conversion failed. s パラメーターが null または Empty であるか、style に準拠した形式の数ではない場合、または MinValue より小さいか MaxValue より大きい数値を表している場合、変換は失敗します。The conversion fails if the s parameter is null or Empty, is not a number in a format compliant with style, or represents a number less than MinValue or greater than MaxValue. このパラメーターは初期化されずに渡されます。result で最初に指定された値はすべて上書きされます。This parameter is passed uininitialized; any value originally supplied in result is overwritten.

戻り値

true が正常に変換された場合は s。それ以外の場合は falsetrue if s was converted successfully; otherwise, false.

例外

styleNumberStyles 値ではありません。style is not a NumberStyles value.

または-or- styleAllowHexSpecifier 値です。style is the AllowHexSpecifier value.

次の例では、使用、TryParse(String, NumberStyles, IFormatProvider, Decimal)特定のスタイルを備え、特定のカルチャの規則を使用して書式設定する数値の文字列形式を解析します。The following example demonstrates the use of the TryParse(String, NumberStyles, IFormatProvider, Decimal) method to parse the string representation of a number that has a particular style and is formatted using the conventions of a particular culture.

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

注釈

このオーバー ロードとは異なります、Decimal.Parse(String, NumberStyles, IFormatProvider)解析の数値の値を返す代わりに、解析操作が成功したかどうかを示すブール値を返すことによってメソッド。This overload differs from the Decimal.Parse(String, NumberStyles, IFormatProvider) method by returning a Boolean value that indicates whether the parse operation succeeded instead of returning the parsed numeric value. 例外処理を使用してテストする必要がある、FormatExceptionイベントでs有効でないし、正常に解析されることはできません。It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

styleパラメーターの使用可能な形式の定義、s解析操作が成功するためのパラメーター。The style parameter defines the allowable format of the s parameter for the parse operation to succeed. ビット フラグの組み合わせがあります、NumberStyles列挙体。It must be a combination of bit flags from the NumberStyles enumeration. NumberStylesメンバーがサポートされていません。The following NumberStyles members are not supported:

スタイルの値に応じて、sパラメーターは、次の要素を含めることができます。Depending on the value of style, the s parameter may include the following elements:

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

角かっこ ([ および ]) 内の要素は省略可能です。Elements in square brackets ([ and ]) are optional. 次の表は、それぞれの要素の説明です。The following table describes each element.

要素Element 説明Description
wsws 空白文字の省略可能です。Optional white space. 先頭に空白文字を表示できるs場合styleが含まれています、NumberStyles.AllowLeadingWhiteフラグ。White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag. 末尾に表示できるs場合styleが含まれています、NumberStyles.AllowTrailingWhiteフラグ。It can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ カルチャ固有の通貨記号。A culture-specific currency symbol. によって、文字列内の位置が定義されている、NumberFormatInfo.CurrencyNegativePatternまたはNumberFormatInfo.CurrencyPositivePatternのプロパティ、NumberFormatInfoによって返されるオブジェクト、IFormatProvider.GetFormatのメソッド、providerパラメーター。Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern or NumberFormatInfo.CurrencyPositivePattern properties of the NumberFormatInfo object returned by the IFormatProvider.GetFormat method of the provider parameter. 通貨記号に表示されるs場合styleが含まれています、NumberStyles.AllowCurrencySymbolフラグ。The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign オプションの符号。An optional sign.
数字digits 0 から 9 までの数字のシーケンス。A sequence of digits ranging from 0 to 9.
.. カルチャに固有の小数点記号。A culture-specific decimal point symbol.
fractional-digitsfractional-digits 0 から 9 までの数字のシーケンス。A sequence of digits ranging from 0 to 9.

styleの許可された書式を指定するパラメーター、sパラメーターを 1 つまたは複数を指定できますNumberStyles列挙定数はビットごとの OR 演算を使用して結合します。The style parameter specifies the permitted format of the s parameter, and can be one or more NumberStyles enumerated constants combined using a bitwise OR operation. 場合styleが null、sを使用して解釈されます、NumberStyles.Numberスタイル。If style is null, s is interpreted using the NumberStyles.Number style.

providerパラメーターは、IFormatProviderなどの実装をNumberFormatInfoまたはCultureInfoオブジェクト。The provider parameter is an IFormatProvider implementation such as a NumberFormatInfo or CultureInfo object. providerパラメーターの解析中に使用されるカルチャ固有の情報を提供します。The provider parameter supplies culture-specific information used in parsing. providernull の場合は、スレッドの現在のカルチャが使用されます。If provider is null, the thread current culture is used.

ADecimalオブジェクトが 29 桁の有効桁数。A Decimal object has 29 digits of precision. 場合sし 29 以上の数字は、小数部を備えがの範囲内の数値を表すMaxValueMinValue数値が丸められます、近似値に 29 桁に切り捨てられません。If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

区切り記号が発生した場合、s解析操作では、および適用可能な通貨または 10 進数の中にパラメーターとグループ区切り記号が同じ、解析操作が想定する、区切り記号は、グループではなく、小数点区切り文字区切り記号。If a separator is encountered in the s parameter during a parse operation, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. 区切り記号の詳細については、次を参照してください。 CurrencyDecimalSeparatorNumberDecimalSeparatorCurrencyGroupSeparator、およびNumberGroupSeparatorします。For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

こちらもご覧ください

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

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 *  -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean

パラメーター

戻り値

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

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> *  -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Decimal) As Boolean

パラメーター

戻り値

TryParse(String, Decimal) TryParse(String, Decimal) TryParse(String, Decimal) TryParse(String, Decimal)

数値の文字列形式を、それと等価の Decimal に変換します。Converts the string representation of a number to its Decimal equivalent. 戻り値は変換が成功したか失敗したかを示します。A return value indicates whether the conversion succeeded or failed.

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 *  -> bool
Public Shared Function TryParse (s As String, ByRef result As Decimal) As Boolean

パラメーター

s
String String String String

変換する数値の文字列形式。The string representation of the number to convert.

result
Decimal Decimal Decimal Decimal

変換が成功した場合は、このメソッドから制御が返されるときに s に格納された数値と等価の Decimal 数を格納します。変換に失敗した場合は 0 を格納します。When this method returns, contains the Decimal number that is equivalent to the numeric value contained in s, if the conversion succeeded, or zero if the conversion failed. s パラメーターが null または Empty であるか、有効な書式の数値ではない、または MinValue より小さいか MaxValue より大きい数値を表している場合、変換は失敗します。The conversion fails if the s parameter is null or Empty, is not a number in a valid format, or represents a number less than MinValue or greater than MaxValue. このパラメーターは初期化されずに渡されます。result で最初に指定された値はすべて上書きされます。This parameter is passed uininitialized; any value originally supplied in result is overwritten.

戻り値

true が正常に変換された場合は s。それ以外の場合は falsetrue if s was converted successfully; otherwise, false.

次の例では、Decimal.TryParse(String, Decimal)メソッドに数値の文字列形式に変換するDecimal値。The following example uses the Decimal.TryParse(String, Decimal) method to convert the string representations of numeric values to Decimal values. その EN-US では、現在のカルチャが前提としています。It assumes that en-US is the current culture.

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

注釈

このオーバー ロードとは異なります、Decimal.Parse(String)解析の数値の値を返す代わりに、解析操作が成功したかどうかを示すブール値を返すことによってメソッド。This overload differs from the Decimal.Parse(String) method by returning a Boolean value that indicates whether the parse operation succeeded instead of returning the parsed numeric value. 例外処理を使用してテストする必要がある、FormatExceptionイベントでs有効でないし、正常に解析されることはできません。It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

パラメーターsフォームの番号が含まれています。Parameter s contains a number of the form:

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

角かっこ ([ および ]) 内の要素は省略可能です。Elements in square brackets ([ and ]) are optional. 次の表は、それぞれの要素の説明です。The following table describes each element.

要素Element 説明Description
wsws 空白文字の省略可能です。Optional white space.
signsign オプションの符号。An optional sign.
数字digits 0 から 9 までの数字のシーケンス。A sequence of digits ranging from 0 to 9.
, カルチャ固有の桁区切り記号。A culture-specific thousands separator symbol.
.. カルチャに固有の小数点記号。A culture-specific decimal point symbol.
fractional-digitsfractional-digits 0 から 9 までの数字のシーケンス。A sequence of digits ranging from 0 to 9.

パラメーターsを使用して解釈されます、NumberStyles.Numberスタイル。Parameter s is interpreted using the NumberStyles.Number style. つまり、空白文字と桁区切り記号が許可されているが、通貨記号は表示されません。This means that white space and thousands separators are allowed but currency symbols are not. 要素を明示的に定義する (通貨記号、数千などの区切り記号および空白) に存在することsを使用して、Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal)メソッドのオーバー ロードします。To explicitly define the elements (such as currency symbols, thousands separators, and white space) that can be present in s, use the Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) method overload.

パラメーターsで書式設定情報を使用して解析をNumberFormatInfoオブジェクトの現在のシステム カルチャ用に初期化します。Parameter s is parsed using the formatting information in a NumberFormatInfo object initialized for the current system culture. 詳細については、「CurrentInfo」を参照してください。For more information, see CurrentInfo. 文字列を解析するカルチャを指定の他の書式設定情報を使用して、使用、Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal)メソッドのオーバー ロードします。To parse a string using the formatting information of some other specified culture, use the Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) method overload.

必要に応じて、値のs近似値に丸められます。If necessary, the value of s is rounded using rounding to nearest.

ADecimalオブジェクトが 29 桁の有効桁数。A Decimal object has 29 digits of precision. 場合sし 29 以上の数字は、小数部を備えがの範囲内の数値を表すMaxValueMinValue数値が丸められます、近似値に 29 桁に切り捨てられません。If s represents a number that has more than 29 digits, but has a fractional part and is within the range of MaxValue and MinValue, the number is rounded, not truncated, to 29 digits using rounding to nearest.

解析操作中には、区切り記号がで発生した場合、sパラメーター、および適用可能な通貨または 10 進数とグループ区切り記号が同じ、解析操作が想定する、区切り記号は、グループではなく、小数点区切り文字区切り記号。If during a parse operation a separator is encountered in the s parameter, and the applicable currency or number decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group separator. 区切り記号の詳細については、次を参照してください。 CurrencyDecimalSeparatorNumberDecimalSeparatorCurrencyGroupSeparator、およびNumberGroupSeparatorします。For more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

こちらもご覧ください

適用対象