信息
您所需的主题如下所示。但此主题未包含在此库中。

Single.TryParse 方法 (String, Single%)

2013/12/13

将数字的字符串表示形式转换为它的等效单精度浮点数字。一个指示转换是否成功的返回代码。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

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

参数

s
类型: System.String
表示要转换的数字的字符串。
result
类型: System.Single %
当此方法返回时,如果转换成功,则包含与 s 所包含的数值或符号等效的单精度浮点数字;如果转换失败,则包含零。如果 s 参数为 null,不是有效格式的数字或者表示的数字小于 MinValue 或大于 MaxValue,则转换将失败。该参数未经初始化即被传递。

返回值

类型: System.Boolean
如果成功转换了 s,则为 true;否则为 false

此重载与 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 之间的数字字符,用于指定指数。

通过使用 NumberStyles.FloatNumberStyles.AllowThousands 标志的组合来解释 s 参数。这意味着允许空白和千位分隔符,但不允许货币符号。若要显式定义可在 s 中存在的元素(例如,货币符号、千位分隔符和空白),请使用 TryParse(String, NumberStyles, IFormatProvider, Single) 方法重载。

s 参数是使用针对当前系统区域性初始化的 NumberFormatInfo 对象中的格式设置信息分析的。有关更多信息,请参见 NumberFormatInfo.CurrentInfo。若要使用其他一些指定区域性的格式设置信息分析字符串,请使用 TryParse(String, NumberStyles, IFormatProvider, Single) 方法重载。

通常,如果向 Single.TryParse 方法传递通过调用 Single.ToString 方法创建的字符串,将返回原始 Single 值。但是,由于精度损失,这些值可能不相等。

如果在执行分析操作的过程中在 s 参数中遇到分隔符,并且适用的货币分隔符或小数位分隔符和组分隔符相同,则分析操作假定该分隔符是小数点分隔符,而不是组分隔符。有关分隔符的更多信息,请参见 CurrencyDecimalSeparatorNumberDecimalSeparatorCurrencyGroupSeparatorNumberGroupSeparator

下面的代码示例使用 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

Windows Phone

显示: