2014-12-02 77 views
0

我如何使用浮点数来制作If语句?我的代码如下:如果声明为浮动?

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

第二行的p1 if语句不起作用。我如何为此做出适当的陈述?

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

在此先感谢您的帮助。

+0

第二行应该表示什么意思?你正在检查一个空白的文本框? – 2014-12-02 04:21:27

回答

2

如果您正试图检查它是否能够从textBox1.Text成功解析float值,使用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"); 
} 

注意,你也将不得不处理无效字符这种方式(如字母,符号或空格)。

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 S代表平等==运营商是不是一个好主意,因为float不是一个精确的表示。 This Q&A讨论了Java中的问题,但是这个问题在所有使用浮点表示的语言中都是相关的。