在C# 后台将String类型转换成int
有以下几种方法:
(1) int.TryParse(string);
(2) Convert.Toint32(string);
(3) (int)string;
但是,
使用Convert.ToInt32(string) 会出现输入字符串格式错误问题。
使用Int.TryParse(string)也会转换失败,不会错误,会输出默认的0
解决方案是使用Decimal或者Double去转换
(1)使用Decimal.Parse
string a = "23.00";
decimal c = decimal.Parse(a);
Console.WriteLine("result:{0}", (int)c);
(2)使用Double.Parse
string a = "23.00";
Double c = Double.Parse(a);
Console.WriteLine("result:{0}", (int)c);
注:当使用(int)string强行转换的时候你会发现如果带有小数点系统会被自动忽略。
如果使用Convert.ToInt32转换时系统会四舍五入。
附:实现一个类型的扩展类。
public static class ObjectExtension
{
public static int ToInt(this object obj)
{
int result = default(int);
if (obj != null && obj != DBNull.Value)
{
int.TryParse(obj.ToString(), out result);
}
return result;
}
}