double a=  ;
我既要将它初始化,又不能初始化成任何一个数字
然后 将其Convert.ToString(a)有什么好的解决办法吗?

解决方案 »

  1.   

    double? a;
    Convert.ToString(a??0);
      

  2.   


                double d1 = double.NaN;
                double d2 = default(double);看你想怎么用。
      

  3.   

       double d1 = double.NaN;
       double? d2 = null;
      

  4.   


    还有一个 double d3 = 0d;
    这三个有什么区别吗?我要将它变成字符串,
    convert.tostring(d1、d2、d3)分别等于什么?
    因为要用于if(d1!="")的判断
      

  5.   


    标示Nullable类型,使值类型可赋值为null。
    等于:
    Nullable<double> d = null;
      

  6.   


                double d1 = double.NaN;
                double d2 = default(double);
                double? d3 = null;
                Console.WriteLine(Convert.ToString(d1));//输出:非数字
                Console.WriteLine(Convert.ToString(d2));//输出:0
                Console.WriteLine(Convert.ToString(d3));//输出:
    其实你自己试一下不就知道了
      

  7.   

    我既要将它初始化,又不能初始化成任何一个数字你理解有问题吧,初始化不就是给个初始值吗?你这话很矛盾
    double d;这样d=0.0;
    double d = null;这是典型的二逼写法
      

  8.   

    加问号是表示这个值可以为null
      

  9.   

    这个不能怪回帖的人,
    只怪LZ的需求,比较特别,
    声明的是double类型,但是初始化时又不能初始化成一个数字,有点不理解
      

  10.   

    因为会有计算结果存入这个变量中。。
    计算结果是数字,不能跟它冲突,当计算过程错误导致没有结果的话,又要返回一个能标识的区分开的值,所以初始化一个NaN,如果返回的是NaN,就可以跟数值区分开了~如果不好用估计就要加个flag了。。
      

  11.   

    建议用
    double d1 = double.NaN;
    来初始化.
    之后用
    double.IsNaN(d1)
    来判断判断是否赋值.
    很不建议用double?的方式,不但任何用到的地方都要判断d1==null,而且用的时候还必须d1.Value
    然后最最恶心的是.net认为double和double?是两种类型.!!!!!
    即如果你的方法参数类型是double,那么每次使用该方法之前要先判断是否为null然.Value来使用.
    如果你的方法参数类型是double?,那么其他double类型的就不能使用该方法.
    又或者,你写方法重载吧...