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 * decimal -> 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:

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

jax-ws[$]シャープ[数字,] 数字 [. 小数部の桁] [e [符号] 数字] [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. NumberStyles.AllowLeadingWhiteフラグが含まれている場合s styleは、の先頭に空白文字を含めることができます。White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag. がフラグをs style含む場合は 、の最後に表示されますNumberStyles.AllowTrailingWhiteIt can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ カルチャ固有の通貨記号。A culture-specific currency symbol. 文字列内での位置はNumberFormatInfo.CurrencyNegativePatternproviderパラメーターのIFormatProvider.GetFormatメソッドNumberFormatInfo.CurrencyPositivePatternによってNumberFormatInfo返されるオブジェクトのプロパティまたはプロパティによって定義されます。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. NumberStyles.AllowCurrencySymbolフラグが含まれてsいるstyle場合は、通貨記号がに表示されます。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.

パラメーターには、 sパラメーターで許可される形式を指定します。またNumberStyles 、ビットごとの or 演算を使用して、1つ以上の列挙定数を組み合わせることもできます。 styleThe 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.

パラメーターは、オブジェクトNumberFormatInfoやオブジェクトCultureInfoなどの実装です。 IFormatProvider providerThe 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.

オブジェクトDecimalの有効桁数は29桁です。A Decimal object has 29 digits of precision. s 29 桁を超える数値を表していて、小数部を持ち、かつMinValueMaxValue範囲内にある場合、数値は切り捨てられず、切り捨てられずに、近似値に丸められて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. 区切り記号の詳細についてCurrencyDecimalSeparatorは、「」 NumberGroupSeparator、「」、「」、および「」を参照してくださいNumberDecimalSeparatorCurrencyGroupSeparatorFor 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 * decimal -> 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> * decimal -> 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 * decimal -> 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:

jax-wsシャープ[数字,] 数字 [. 小数部の桁] [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.

パラメーター sNumberStyles.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.

オブジェクトDecimalの有効桁数は29桁です。A Decimal object has 29 digits of precision. s 29 桁を超える数値を表していて、小数部を持ち、かつMinValueMaxValue範囲内にある場合、数値は切り捨てられず、切り捨てられずに、近似値に丸められて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. 区切り記号の詳細についてCurrencyDecimalSeparatorは、「」 NumberGroupSeparator、「」、「」、および「」を参照してくださいNumberDecimalSeparatorCurrencyGroupSeparatorFor more information about separators, see CurrencyDecimalSeparator, NumberDecimalSeparator, CurrencyGroupSeparator, and NumberGroupSeparator.

こちらもご覧ください

適用対象