0

我很好奇为什么这给了我一个错误:

输入字符串的格式不正确。

发生此错误是因为屏幕null如此它应该无法通过检查并且不会导致异常。

if (double.Parse(textDisplay.Text) >= -2147483647 & textDisplay.Text != null)
4

5 回答 5

5

首先检查它是否不为空。也使用 double&&作为单检查两个参数。double.TryParse此外,如果输入不是数字,你会更好。

if (textDisplay.Text != null && double.Parse(textDisplay.Text) >= -2147483647)

更好的版本:

double value = 0;
if (double.TryParse(textDisplay.Text, out value) && value >= -2147483647)
于 2013-07-09T06:17:26.757 回答
1

使用TryParse而不是,Parse如果有效,它不会引发异常并返回布尔值

double res = 0;
if(double.TryParse("asd", out res))
{
   var a = res;
};
于 2013-07-09T06:17:05.700 回答
0

尝试 && 代替

if (double.Parse(textDisplay.Text) >= -2147483647 && textDisplay.Text != null)

或者

double @num;

if(double.TryParse(textDisplay.Text, out @num) && @num >= -2147483647)
    return @num;
于 2013-07-09T06:17:17.257 回答
0
if (double.Parse(textDisplay.Text) >= -2147483647 & textDisplay.Text != null)

你应该使用双'&':

if (double.Parse(textDisplay.Text) >= -2147483647 && textDisplay.Text != null)
于 2013-07-09T06:17:38.377 回答
0

使用TryParseso 当 TextBox 值为空或 null 时不会抛出任何错误

double displayValue = 0;
double.TryParse(textDisplay.Text, out displayValue)

if (displayValue >= -2147483647)
于 2013-07-09T06:19:13.327 回答