• C#中转换函数Convert、Parse、TryParse、(int) 的区别


    Convert、Parse、TryParse、(int) 三个函数都是将值转换成整数,但是四者之间各有异同,开发人员可以根据情况选用最合适的。以下解释均经过高人验证,希望对大家有所帮助。 

    1 (int)变量名[强制类型转换]: 

         该转换方式主要用于数字类型转换,从int类型到long,float,double,decimal类型,可以使用隐式转换,但是从long类型到int类型就需要使用显式转换,也就是该数据类型转换方式,否则会产生编译错误。 

          该方式对于浮点数会做无条件舍去,失去精确度 

          当然,该方式也可以进行object到int得转换,但是,object的值要赋予int类型的值,否则会产生编译错误,而且object为null时也会出错。 

          最后切忌的一点,千万不要用来处理char类型到int类型的转换,否则传回的的值是ASCII代码,而并不是你想要的值。 

    2 int.Parse(string类型变量名) 

           该方式是将数字内容的字符串转为int类型,如果字符串内容为空或者null时,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常;如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常。 

          使用该方法切忌的一点就是只能处理字符串内容,而且字符串内容只能在int类型可表示的范围之内。 

    3 int.TryParse(string s, out int result) 

          该方式也是将数字内容的字符串转为int类型,但是该方式比int.Parse优越的地方,就是它不会出现异常。如果转换成功返回 true,如果转换失败返回 false。很明显,最后一个参数为输出值,如果转换失败,输出值为 0;如果转换成功,则输出相应的值。

     4 Convert.ToInt32 

          该方式不仅可以将字符串转为int类型,还可以将其它类型的值转成int类型。变量若为object或string类型,当其值为null时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,在转型成int时,仍会造成程序错误。     该方式对于浮点数会做四舍五入。 

        该方式同强制转换一样,不能用来处理char类型,否则传回的是ASCII代码。

    转自:http://www.blue1000.com/bkhtml/c17/2013-07/71292.htm

    可以自己写一个转换函数减少代码量

    //判断一个object是否为Null
            public static bool IsObjectNull(object value)
            {
    
                if (value == null || value == DBNull.Value || value.ToString() == "")
                {
                    return true;
    
                }
                else
                {
                    return false;
                }
    
    
            }
            //获取一个object的decimal
            public static decimal GetDecimal(object value)
            {
                try
                {
                    decimal temp = 0;
                    if (value == null || value == DBNull.Value || value.ToString() == "")
                    {
                        return 0;
    
                    }
                    else
                    {
                        temp = decimal.Parse(value.ToString());
                    }
                    return temp;
                }
                catch (Exception e)
                {
                    return 0;
                }
    
            }
  • 相关阅读:
    核主成分分析方法(KPCA)怎么理解?
    通过主成分分析方法进行降维
    线性回归分析中的假设检验
    机器学习中的逻辑回归方法
    关联分析中寻找频繁项集的FP-growth方法
    机器学习中的模型选择和特征选择的基本方法
    计算学习理论中泛化误差的研究
    《幸福的陷阱》读书笔记
    人生规划的逆向思维
    为什么相敬如宾是对的?
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/10111794.html
Copyright © 2020-2023  润新知