情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Single.TryParse メソッド (String, Single%)

2013/12/12

数値の文字列形式を、それと等価な単精度浮動小数点数に変換します。リターン コードは、変換が成功したか失敗したかを示します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static bool TryParse(
	string s,
	out float result
)

パラメーター

s
型: System.String
変換する数値を表す文字列。
result
型: System.Single %
変換が成功した場合、このメソッドが返されるときに、s に格納された数値または記号と等価の単精度浮動小数点数を格納します。変換に失敗した場合は 0 を格納します。s パラメーターが特定の条件 (null である、有効な形式の数値ではない、MinValue より小さい数値または MaxValue より大きい数値を表している) に該当する場合、変換は失敗します。このパラメーターは初期化されずに渡されます。

戻り値

型: System.Boolean
s が正常に変換された場合は true。それ以外の場合は false

このオーバーロードは、解析された数値を返すのではなく、解析操作が成功したかどうかを示す Boolean 値を返す点が、Single.Parse(String) メソッドとは異なります。s が無効で正常に解析できない場合の FormatException をテストする例外処理を使用する必要がなくなります。

s パラメーターには、PositiveInfinitySymbolNegativeInfinitySymbolNaNSymbol (文字列比較で大文字と小文字を区別します)、または次の書式の文字列を格納できます。

[ws][sign][integral-digits,]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]

角かっこで囲まれている要素は省略可能です。各要素について次の表で説明します。

要素

説明

ws

一連の空白文字。

sign

負の記号または正の記号。

integral-digits

数値の整数部分を指定する 0 ~ 9 の範囲の一連の数字。小数の桁が存在する場合は、整数の桁はなくてもかまいません。

,

カルチャ固有のグループ区切り記号。

.

カルチャに固有の小数点記号。

fractional-digits

数値の小数部分を指定する 0 ~ 9 の範囲の一連の数字。

E

指数表記を示す大文字または小文字の 'e'。

exponential-digits

指数部を指定する 0 ~ 9 の範囲の一連の数字。

s パラメーターは、NumberStyles.Float フラグと NumberStyles.AllowThousands フラグの組み合わせを使用して解釈されます。つまり、空白文字と桁区切り記号は使用できますが、通貨記号は使用できません。s で使用できる要素 (通貨記号、桁区切り記号、空白文字など) を明示的に定義するには、TryParse(String, NumberStyles, IFormatProvider, Single) メソッド オーバーロードを使用します。

s パラメーターは、現在のシステム カルチャに対して初期化された NumberFormatInfo オブジェクト内の書式情報を使用して解析されます。詳細については、「NumberFormatInfo.CurrentInfo」を参照してください。指定した他のカルチャの書式情報を使用して文字列を解析するには、TryParse(String, NumberStyles, IFormatProvider, Single) メソッド オーバーロードを使用します。

通常、Single.ToString メソッドを呼び出すことで作成された文字列を Single.TryParse メソッドに渡すと、元の Single 値が返されます。ただし、精度の低下が原因で、値が等しくない場合があります。

解析操作中に s パラメーターで区切り記号が検出され、適用可能な通貨または数値の桁区切り記号とグループ区切り記号が同じ場合、解析操作では、区切り記号がグループ区切り記号ではなく桁区切り記号であると見なされます。区切り記号の詳細については、「CurrencyDecimalSeparator」、「NumberDecimalSeparator」、「CurrencyGroupSeparator」、および「NumberGroupSeparator」を参照してください。

次の例では、TryParse(String, Single) メソッドを使用して、数値の文字列形式を Single 値に変換します。en-US が現在のカルチャであるものとします。


string value;
float number;

// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Single.TryParse(value, out number))
   outputBlock.Text += number + "\n";
else
   outputBlock.Text += String.Format("Unable to parse '{0}'.", value) + "\n";

// Parse a floating-point value with a currency symbol and a 
// thousands separator.
value = "$1,643.57";
if (Single.TryParse(value, out number))
   outputBlock.Text += number + "\n";
else
   outputBlock.Text += String.Format("Unable to parse '{0}'.", value) + "\n";

// Parse value in exponential notation.
value = "-1.643e6";
if (Single.TryParse(value, out number))
   outputBlock.Text += number + "\n";
else
   outputBlock.Text += String.Format("Unable to parse '{0}'.", value) + "\n";

// Parse a negative integer value.
value = "-168934617882109132";
if (Single.TryParse(value, out number))
   outputBlock.Text += number + "\n";
else
   outputBlock.Text += String.Format("Unable to parse '{0}'.", value) + "\n";
// The example displays the following output:
//       1643.57
//       Unable to parse '$1,643.57'.
//       -164300
//       -1.68934617882109E+17


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: