Int.Parse() 和 Convert.ToInt32()
找了一些资料,竟然发现这个简单的转换有许多的不同,不知基于什么目的,但这样却看出了C#里处理数据的一些混乱
- (int)对于浮点数等进行转换,采取的是截断的方式.Int转化其他数值类型为Int时没有四舍五入,强制转换
- Convert.ToInt32,可以转换许多可转换的类型,典型的如string等,它的重载方式很多, Convert.ToInt32(Obeject x) . 因此,在很多地方使用。但如果需要精确的数,这个转换并不是太可靠,有时可能引起意外。如要转换的是一个空值,将返回0,或者,转换的是浮点数,Convert.ToInt32(double value)
如果 value 为两个整数中间的数字,则返回二者中的偶数;即 4.5 转换为 4,而 5.5 转换为 6。 - Int.Parse只能转换string类型的。无法转换时(包括空字符串),将抛出异常。