C#中转换格式Double.Prase()和Convert.Dodouble()有区别吗c#

解决方案 »

  1.   

    Convert.Dodouble()源码public static double ToDouble(string value)
    {
        if (value == null)
        {
            return 0.0;
        }
        return double.Parse(value, CultureInfo.CurrentCulture);
      

  2.   

    区别中有一个是对null的处理
    parse会抛异常  而Convert会返回 0
      

  3.   

    Double.Parse()只能接收string参数,而Convert.ToDouble()可以接收多种基本类型参数。如果给定一个object实例,用Convert.ToDouble比较方便。
      

  4.   

    Convert.ToDouble与 Double.Parse 较为类似,实际上 Convert.ToDouble内部调用了 Double.Parse:Convert.ToDouble参数为 null 时,返回 0.0; 
    Double.Parse 参数为 null 时,抛出异常。 
      
    Convert.ToDouble参数为 "" 时,抛出异常; 
    Double.Parse 参数为 "" 时,抛出异常。 
      
    Convert.ToDouble可以转换的类型较多; 
    Double.Parse 只能转换数字类型的字符串。 
    Double.TryParse 与 Double.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0.0。
    附测试代码:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    //string a = "0.2";
                    //string a = null;
                    string a = "";
                    try
                    {
                        double d1 = Double.Parse(a);
                    }
                    catch (Exception err)
                    {
                        Console.WriteLine("d1转换出错:" + err.Message);
                    }                try
                    {
                        double d2 = Convert.ToDouble(a);
                    }
                    catch (Exception err)
                    {
                        Console.WriteLine("d2转换出错:" + err.Message);
                    }
                    try
                    {
                        double d3;
                        Double.TryParse(a,out d3);
                    }
                    catch (Exception err)
                    {
                        Console.WriteLine("d3转换出错:" + err.Message);
                    }
                }
                finally
                {
                    Console.ReadKey();
                }        }
        }
    }