我有一个TextBoxD1.Text,我想将其转换为int,并将其存储在数据库中。
我该怎么做?
我有一个TextBoxD1.Text,我想将其转换为int,并将其存储在数据库中。
我该怎么做?
当前回答
方法1
int TheAnswer1 = 0;
bool Success = Int32.TryParse("42", out TheAnswer1);
if (!Success) {
Console.WriteLine("String not Convertable to an Integer");
}
方法2
int TheAnswer2 = 0;
try {
TheAnswer2 = Int32.Parse("42");
}
catch {
Console.WriteLine("String not Convertable to an Integer");
}
方法3
int TheAnswer3 = 0;
try {
TheAnswer3 = Int32.Parse("42");
}
catch (FormatException) {
Console.WriteLine("String not in the correct format for an Integer");
}
catch (ArgumentNullException) {
Console.WriteLine("String is null");
}
catch (OverflowException) {
Console.WriteLine("String represents a number less than"
+ "MinValue or greater than MaxValue");
}
其他回答
虽然这里已经有很多描述int.Parse的解决方案,但所有答案中都缺少一些重要的内容。通常,数值的字符串表示因区域性而异。数字字符串的元素,如货币符号、组(或千)分隔符和小数分隔符,都因文化而异。
如果您想创建一种将字符串解析为整数的健壮方法,那么考虑区域性信息非常重要。如果没有,将使用当前的区域性设置。这可能会给用户一个非常可怕的惊喜——甚至更糟糕的是,如果你正在解析文件格式。如果您只想进行英语解析,最好通过指定要使用的区域性设置,使其明确:
var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
// use result...
}
有关更多信息,请阅读CultureInfo,特别是MSDN上的NumberFormatInfo。
如果您正在寻找长远的方法,只需创建一个方法:
static int convertToInt(string a)
{
int x = 0;
Char[] charArray = a.ToCharArray();
int j = charArray.Length;
for (int i = 0; i < charArray.Length; i++)
{
j--;
int s = (int)Math.Pow(10, j);
x += ((int)Char.GetNumericValue(charArray[i]) * s);
}
return x;
}
上面的所有答案都很好,但为了提供信息,我们可以使用int.TryParse,例如,它可以安全地将字符串转换为int
// TryParse returns true if the conversion succeeded
// and stores the result in j.
int j;
if (Int32.TryParse("-105", out j))
Console.WriteLine(j);
else
Console.WriteLine("String could not be parsed.");
// Output: -105
TryParse即使在无效输入和null时也不会抛出异常。在大多数程序上下文中,它总的来说比int.Parse更好。
来源:如何在C#中将字符串转换为int?(Int.Parse和Int.TryParse之间存在差异)
int x = 0;
int.TryParse(TextBoxD1.Text, out x);
TryParse语句返回一个布尔值,表示解析是否成功。如果成功,解析的值将存储到第二个参数中。
有关详细信息,请参阅Int32.TryParse方法(字符串,Int32)。
您可以借助parse方法将字符串转换为整数值。
Eg:
int val = Int32.parse(stringToBeParsed);
int x = Int32.parse(1234);