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)
{