C# C语言中的字符串、小数和Null
下面是我正在尝试使用的代码片段C# C语言中的字符串、小数和Null,c#,asp.net,C#,Asp.net,下面是我正在尝试使用的代码片段 decimal preTestAir = decimal.Parse(AirPreTestTextBox.Value); preTestAir是十进制数,需要保留十进制数才能发送到数据库。这不能改变。我试图做的是确定AirPreTestTextBox.Value是否为空,如果为空,则为其指定十进制值0.00,然后将其指定给十进制值。只要文本框中有一些数值,上面的代码就非常有效。如果文本框中没有值怎么办?应用程序崩溃了。我如何确定TextBox.Value是否为n
decimal preTestAir = decimal.Parse(AirPreTestTextBox.Value);
preTestAir是十进制数,需要保留十进制数才能发送到数据库。这不能改变。我试图做的是确定AirPreTestTextBox.Value是否为空,如果为空,则为其指定十进制值0.00,然后将其指定给十进制值。只要文本框中有一些数值,上面的代码就非常有效。如果文本框中没有值怎么办?应用程序崩溃了。我如何确定TextBox.Value是否为null,如果全部在一行中,如何分配一个值?之所以有一行代码,是因为我有将近100行代码需要以这种方式格式化。我试过使用像??对于不是可空类型的小数不起作用。有人能帮忙吗?感谢您的任何帮助 您可以简单地使用条件运算符:
decimal preTestAir = AirPreTestTextBox.Value == null ?
0.0m :
decimal.Parse(AirPreTestTextBox.Value);
您可以简单地使用条件运算符:
decimal preTestAir = AirPreTestTextBox.Value == null ?
0.0m :
decimal.Parse(AirPreTestTextBox.Value);
空合并运算符??他是你的朋友。使用
(AirPreTestTextBox.Value ?? "0.00")
空合并运算符??他是你的朋友。使用
(AirPreTestTextBox.Value ?? "0.00")
用三元数就够容易了
decimal preTestAir = String.IsNullOrEmpty(AirPreTestTextBox.Value) ? 0 : decimal.Parse(AirPreTestTextBox.Value);
文本框不太可能包含空字符串,更可能是空字符串。使用三元字符串就足够容易了
decimal preTestAir = String.IsNullOrEmpty(AirPreTestTextBox.Value) ? 0 : decimal.Parse(AirPreTestTextBox.Value);
文本框不太可能包含空字符串,更可能是空字符串。只需使用try parse。。。。它将处理任何不可转换为十进制的数据
decimal preTestAir;
if(!deciaml.TryParse(AirPreTestTextBox.Value, out preTestAir))
{
// handle the fact it couldn't convert if you like...
}
只需使用try parse。。。。它将处理任何不可转换为十进制的数据
decimal preTestAir;
if(!deciaml.TryParse(AirPreTestTextBox.Value, out preTestAir))
{
// handle the fact it couldn't convert if you like...
}
事实上,这让我犯了这个错误。这有意义吗?mscorlib.dll中发生“System.FormatException”类型的异常,但未在用户代码中处理其他信息:输入字符串的格式不正确。实际上,它引发了此错误。这有意义吗?mscorlib.dll中出现“System.FormatException”类型的异常,但未在用户代码中处理。其他信息:输入字符串的格式不正确。@GreenDeveloper 0.00是双精度的,而不是十进制的。0是一个int,但int可以隐式转换为decimal类型。可以使用0米、0.0米或0.00米。m代表十进制。尾随零的数量很重要,但根据您的使用情况,您可能可以使用其中任何一个。int 0变为十进制0,后面不带零。@GreenDeveloper 0.00是双精度的,不是十进制的。0是一个int,但int可以隐式转换为decimal类型。可以使用0米、0.0米或0.00米。m代表十进制。尾随零的数量很重要,但根据您的使用情况,您可能可以使用其中任何一个。整数0变为十进制0,后面不带零。