0

なぜこれが私にエラーを与えているのか興味があります:

入力文字列は、正しい形式ではありませんでした。

このエラーは、画面がnullそうであるため、チェックに失敗し、例外が発生しないために発生します。

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

5 に答える 5

5

最初に null でないかどうかを確認します。&&また、両方の引数をチェックするシングルとしてダブルを使用します。また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 に答える