C#知识点浅析之Convert.ToInt32()、int.Parse()和(int)三者的区别

我们来看下三种方法在三种使用场景中的表现,直接上代码:

    //object 转 int  四舍五入取偶法
    object num1 = 4.5;
    Debug.Log(Convert.ToInt32(num1));  //4
    object num2 = 3.5;
    Debug.Log(Convert.ToInt32(num2));  //4
    object num3 = null;
    Debug.Log(Convert.ToInt32(num3));  //0

    //一般值类型之间的转换   向下取整
    ETest eNum = ETest.EClient;
    Debug.Log((int)eNum);   //1
    Debug.Log((int)(4.5));  //4
    Debug.Log((int)(3.5));  //3


    //string 转 int
    string sNum1 = "4";
    Debug.Log(int.Parse(sNum1));  //4
    string sNum2 = "4.5";
    Debug.Log(int.Parse(sNum2));  //Exception
    string sNum3 = "";
    Debug.Log(int.Parse(sNum3));  //Exception

输出:
在这里插入图片描述

根据执行结果来看,需要注意的是:

第一种情况,当值是float的时候:
Convert.ToInt32() 会进行“非标准”的四舍五入,如果值恰好是某两个整数的中间数,则取偶数。
而(int)就是向下取整
而int.parse 是会抛出异常的。

第二种情况,当值是null的时候
Convert.ToInt32() 返回0
而int.parse 还是是会抛出异常的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值