我遇到了错误:格式异常未处理,输入的字符串不是正确的格式。对于以下这行代码:
``` ```
``` ```
int right = System.Convert.ToInt32(rightAngleTB.Text);
rightAngleTB是文本框,值为"25"(不带引号)。
我真的不明白问题在哪里:(
int right = System.Convert.ToInt32(rightAngleTB.Text);
rightAngleTB是文本框,值为"25"(不带引号)。
我真的不明白问题在哪里:(
你真的应该使用 int.TryParse
。它更容易进行类型转换并且不会抛出异常。
int right = 0; //Or you may want to set it to some other default value
if(!int.TryParse(rightAngleTB.Text.Trim(), out right))
{
// Do some error handling here.. Maybe tell the user that data is invalid.
}
// do the rest of your coding..
如果上述的TryParse失败了,那么right的值将会是你在声明中设置的任何值。(在这种情况下为0...)
请尝试下面的代码。
using System;
public class StringParsing
{
public static void Main()
{
// get rightAngleTB.Text here
TryToParse(rightAngleTB.Text);
}
private static void TryToParse(string value)
{
int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}
rightAngleTB.Text
不包含文本25
。 - BrokenGlass25
吗?里面没有任何额外的字符,比如小数点或多余的空格吗?Convert.ToInt32 肯定能够将字符串25
转换为整数。 - matt