C#中的字符串,小数和空

时间:2014-11-05 20:52:40

标签: c# asp.net

我正在尝试使用下面的代码段。

decimal preTestAir = decimal.Parse(AirPreTestTextBox.Value);

preTestAirdecimal,需要保持decimal才能发送到数据库。这不能改变。我要做的是确定AirPreTestTextBox.Value是否为空,如果是,请为decimal分配0.00值,然后将其分配给decimal {{1 }}。只要文本框中有一些数字值,上面的代码就会很好用。如果文本框中没有值,该怎么办?该应用程序崩溃。如何确定preTestAir是否为空,如果它在一行中,则分配一个值?这一行的原因是因为我有近100行代码需要以这种方式格式化。我尝试过使用像AirPreTestTextBox.Value这样的运算符,这些运算符不会使用不可为空的小数。有人可以帮忙吗?任何和所有的帮助表示赞赏!

4 个答案:

答案 0 :(得分:4)

您可以简单地使用条件运算符:

decimal preTestAir = AirPreTestTextBox.Value == null ? 
                     0.0m :
                     decimal.Parse(AirPreTestTextBox.Value);

答案 1 :(得分:4)

null合并运算符(??)是你的朋友。使用

(AirPreTestTextBox.Value ?? "0.00")

答案 2 :(得分:4)

很容易用三元组。

decimal preTestAir = String.IsNullOrEmpty(AirPreTestTextBox.Value) ? 0 : decimal.Parse(AirPreTestTextBox.Value);

非常文本框不太可能包含null字符串,它更可能是空字符串。

答案 3 :(得分:1)

只需使用try parse ....它将处理任何不可转换为十进制的

decimal preTestAir;
if(!deciaml.TryParse(AirPreTestTextBox.Value, out preTestAir))
{
  // handle the fact it couldn't convert if you like...
}