lpxx类的一个属性fczdmj 为double型
lpxx.Fczdmj =Convert.ToDouble( textbox1.Text.ToString());语句当textbox1.Text没有值时会报错,“输入字符串的格式不正确。 ”请问如何修改代码?

解决方案 »

  1.   

    C#1.0不能给double类型赋null值,C#2.0才可以
      

  2.   

    首先,值类型是不可以赋null值的。
    null值是针对引用类型的,即表示此指针(即引用)没有指向任何对象。textbox1.Text本身就是string类型,不用再.ToString()了。你应该先判断一下textbox1.Text是否为空字符串。如果是空字符串,你得有一个空字符串的逻辑(即假如没有输入的话,你如何处理),下面假设没有输入的时候你当它是0。lpxx.Fczdmj = (textbox1.Text=="")?0.0:Convert.ToDouble( textbox1.Text);
      

  3.   

    double tmp = double.NaN;
                try
                {
                    tmp = double.Parse(this.textBox1.Text);
                }
                catch
                {
                }
                if(double.IsNaN(tmp)) tmp=0;
      

  4.   

    lpxx.Fczdmj = (textbox1.Text=="")?0.0:Convert.ToDouble( textbox1.Text);
    问题是,建筑面积是可以不输的,而且我也不想把不输入的情况设为0,还是想在库中设null
      

  5.   

    double.NaN  是表示为空吧。 那么int如何表示为空。
      

  6.   

    一般的来说,1.1下面可以用object来变通。即:
    object i = s==null?null:int.Parse(s);
      

  7.   

    object i = (s == null || s == "" ? null : int.Parse( s ) );
      

  8.   

    第一种方法 申明时初始化 int i = null
    第二种方法 使用可空类型 int? i; i = null;
      

  9.   

    lpxx.Fczdmj = (textbox1.Text=="")?0.0:Convert.ToDouble( textbox1.Text);
    问题是,建筑面积是可以不输的,而且我也不想把不输入的情况设为0,还是想在库中设null数据库是你设计的吗? 要存null这个段可以变为字符串类型,运算的地方再转化
      

  10.   

    还是有个默认值比较好,比如int,double设置为0,日期的设置为某个日期为默认值
      

  11.   

    int i=null是错误的。
    int? i=null是可以的。int?实际上是对象。.net 2.0新增内容。主要用于数据库。