日期:2014-05-20  浏览次数:20725 次

强制转换问题
我要大家解释清楚一点

 string str = "8.00000";
 int a = Convert.ToInt32(str);

运行环境是Visual Studio 2005
这两句代码在运行的时候会报错(错误时字符串格式不正确),我想知道为什么转换不了?

------解决方案--------------------
C# code
string str = "8.00000";
            int a = Convert.ToInt32(Convert.ToDouble(str));
            Console.WriteLine(a.ToString());

------解决方案--------------------
Int32只接受整数,也就是8
8.0对Int32来说是非法的

你可以用Decimal或Double过渡

string str = "8.00000";
int a = (int)Convert.ToDouble(str);
------解决方案--------------------
int32是整数

string str = "8.0000";
double a = Convert.ToDouble(str);

可以这样来表示!!

Console.WriteLine(Int32.MaxValue);//最大值
Console.WriteLine(Int32.MinValue);//最小值

并不能包含带小数点的字符串转换!