C# Convert与Parse的区别

一、Convert.ToDouble与Double.Parse的区别

Convert.ToDouble 内部调用了 Double.Parse

(1)对于参数为null的时候:

Convert.ToDouble 参数为 null 时,返回 0.0;

Double.Parse 参数为 null 时,抛出异常。

(2)对于参数为""的时候:

Convert.ToDouble 参数为 "" 时,抛出异常;

Double.Parse 参数为 "" 时,抛出异常。

(3)其它区别:

Convert.ToDouble 可以转换的类型较多;

Double.Parse 只能转换数字类型的字符串。

Double.TryParse 与 Double.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0.0。

二、Convert.ToInt32()与int.Parse()的区别

(1)这两个方法的最大不同是它们对null值的处理方法:

Convert.ToInt32(null) 会返回 0 而不会产生任何异常,但 int.Parse(null) 则会产生异常

(2)对数据进行四舍五入时候的区别

Convert.ToInt32(double value)

如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5转换为4,4.5 转换为 4,而 5.5 转换为 6。 不过4.6可以转换为5,4.4转换为4

int.Parse("4.5")

直接报错:"输入字符串的格式不正确".

int(4.6) = 4

Int转化其他数值类型为Int时没有四舍五入,强制转换

(3)对被转换类型的区别

int.Parse是转换String为int

Convert.ToInt32是转换继承自Object的对象为int的(可以有很多其它类型的数据)

一个object对象,想把它转换为int,不可以用int.Parse,要用Convert.ToInt32

参考文章:

C#中 Convert与Parse的区别

猜你喜欢

转载自www.cnblogs.com/MingsonZheng/p/9747713.html
今日推荐