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

Single.Parse メソッド (String)

2013/12/12

数値の文字列形式を、それと等価な単精度浮動小数点数に変換します。

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

public static float Parse(
	string s
)

パラメーター

s
型: System.String
変換する数値を表す文字列。

戻り値

型: System.Single
s で指定した数値または記号に等しい単精度浮動小数点数。

例外条件
ArgumentNullException

snull です。

FormatException

s が、有効な書式の数値ではありません。

OverflowException

sMinValue 未満の数値か、MaxValue より大きい数値を表しています。

s パラメーターには、PositiveInfinitySymbolNegativeInfinitySymbolNaNSymbol、または次の書式の文字列を格納できます。

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

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

要素

説明

ws

一連の空白文字。

sign

マイナス記号またはプラス記号。有効な符号の文字は、現在のカルチャの NumberFormatInfo.NegativeSign プロパティと NumberFormatInfo.PositiveSign プロパティによって決まります。先行する符号だけを使用できます。

integral-digits

数値の整数部分を指定する 0 ~ 9 の範囲の一連の数字。一連の integral-digits は、桁区切り記号で区切ることができます。たとえば、カルチャによっては、桁区切り文字としてコンマ (,) が使用されます。文字列に integral-digits 要素が含まれる場合は、fractional-digits 要素はなくてもかまいません。

,

カルチャ固有の桁区切り記号。

.

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

fractional-digits

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

E

値が指数表記で表されることを示す文字 "e" または "E"。

exponential-digits

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

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

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

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

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

次の例では、Parse(String) メソッドを使用して、文字列の配列を同等の Single 値に変換します。


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      string[] values = { "100", "(100)", "-123,456,789", "123.45e+6", 
                          "+500", "5e2", "3.1416", "600.", "-.123", 
                          "-Infinity", "-1E-16", Double.MaxValue.ToString(), 
                          Single.MinValue.ToString(), String.Empty };
      foreach (string value in values)
      {
         try
         {
            float number = Single.Parse(value);
            outputBlock.Text += String.Format("{0} -> {1}", value, number) + "\n";
         }
         catch (FormatException)
         {
            outputBlock.Text += String.Format("'{0}' is not in a valid format.", value) + "\n";
         }
         catch (OverflowException)
         {
            outputBlock.Text += String.Format("{0} is outside the range of a Single.", value) + "\n";
         }
      }
   }
}
// The example displays the following output:
//       100 -> 100
//       '(100)' is not in a valid format.
//       -123,456,789 -> -1.234568E+08
//       123.45e+6 -> 1.2345E+08
//       +500 -> 500
//       5e2 -> 500
//       3.1416 -> 3.1416
//       600. -> 600
//       -.123 -> -0.123
//       -Infinity -> -Infinity
//       -1E-16 -> -1E-16
//       1.79769313486232E+308 is outside the range of a Single.
//       -3.402823E+38 -> -3.402823E+38
//       '' is not in a valid format.


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2016 Microsoft