如何使用浮点数制作If语句?我的代码如下:
{float p1 = float.Parse(textBox1.Text);
if (p1 == ""){MessageBox.Show("Home");}}
第二行上的p1 if语句不起作用。我如何为此做出正确的if语句?
编辑:我应该解释一下。目标是检查一个空盒子。我不能使用字符串命令,因为我希望这可以解释数字。提前感谢您的帮助。
答案 0 :(得分:4)
float
值不能为“空”。如果您尝试将空字符串解析为float
,则会出现运行时错误。
您需要在解析之前检查字符串是否为空,然后使用不会引发异常的更“保守”的TryParse
方法进行解析。
if (string.IsNullOrWhitespace(textBox1.Text)) {
MessageBox.Show("Home");
}
float p1;
if (!float.TryParse(textBox1.Text, out p1)) {
MessageBox.Show("textBox1 is not a float");
}
注意:通常,将float
与==
运算符进行比较并不是一个好主意,因为float
不是精确表示。 This Q&A讨论了Java中的问题,但该问题与使用浮点表示的所有语言都相关。
答案 1 :(得分:2)
如果您尝试检查是否能够成功解析float
中的textBox1.Text
值,请使用TryParse
,如下所示:
float p1;
if (float.TryParse(textBox1.Text, out p1))
{
MessageBox.Show("Home");
}
如果您只是尝试检查空文本框,则可以改为:
if (!String.IsNullOrEmpty(textBox1.Text))
{
// Now we can try to parse p1 (assuming it's a valid number)
float p1 = float.Parse(textBox1.Text);
MessageBox.Show("Home");
}
请注意,您还必须以这种方式处理无效字符(例如字母,符号或空格)。