如果浮动声明?

时间:2014-12-02 04:19:42

标签: c#

如何使用浮点数制作If语句?我的代码如下:

{float p1 = float.Parse(textBox1.Text);
if (p1 == ""){MessageBox.Show("Home");}}

第二行上的p1 if语句不起作用。我如何为此做出正确的if语句?

编辑:我应该解释一下。目标是检查一个空盒子。我不能使用字符串命令,因为我希望这可以解释数字。

提前感谢您的帮助。

2 个答案:

答案 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");
}

请注意,您还必须以这种方式处理无效字符(例如字母,符号或空格)。