如果输入为空,则默认数据类型double为0

本文关键字:数据类型 double 默认 输入 如果 | 更新日期: 2023-09-27 18:16:57

我有一点困难设置一个变量为0,如果用户不输入一个值到文本框,这是棘手的,因为变量被传递到多个形式,如果它是在相同的形式,这将是更容易做到的。我的代码附在下面。

//in one of my input forms
//runs on button click
if (!string.IsNullOrWhiteSpace(TXTCustomerGrowth.Text))
{
  fm.SaveGrowth(Convert.ToDouble(TXTCustomerGrowth.Text));
  //fm is instance of class where my methods to save variables are
}
//in class
public void SaveGrowth(double value)
{
    customerGrowth = value;
}
public double GetGrowth()
{
    return customerGrowth;
}
//in the final summary form
double growth = fm.GetGrowth();

我最初保存变量作为字符串和转换成一个双当我需要它但它抱怨说它不能将字符串类型转换为双基本上我想知道的是我可以修改第一个if语句如果文本框为空那么设置变量为null(我的问题是我不确定怎么做在我的情况下因为输入表单中创建的变量不是。

编辑:

我忘了说它最初运行得很好,但是我在摘要屏幕上有一个编辑按钮,它允许你改变你的值,当他们删除增长值并留下空白时,它不注册,并保持增长与原来一样。

EDIT2:

我的编辑按钮只是把你带回到开始,所以你输入的值不会被删除,当摘要按钮被按下时,这个方法被调用:

public void ShowSummary()
{
    calculatingForm.Show();
    summaryForm.UpdateForm();
    calculatingForm.Hide();
    summaryForm.Show();
}

,在UpdateForm方法中是:

double growth = fm.GetGrowth();

如果输入为空,则默认数据类型double为0

String Foo = "21"
Double bar;
if(Double.TryParse(Foo, out bar))
{
}

在进一步尝试回答我自己的问题之后,这里是代码答案:

if (!string.IsNullOrWhiteSpace(TXTCustomerGrowth.Text))
{
    fm.SaveGrowth(Convert.ToDouble(TXTCustomerGrowth.Text));
}
else
{
    fm.SaveGrowth(0);
}