日期:2014-05-17  浏览次数:21201 次

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

------解决方案--------------------
区别中有一个是对null的处理
parse会抛异常  而Convert会返回 0
------解决方案--------------------
Double.Parse()只能接收string参数,而Convert.ToDouble()可以接收多种基本类型参数。

如果给定一个object实例,用Convert.ToDouble比较方便。
------解决方案--------------------
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)
                {