重複の可能性:
計算中のエラーメッセージ
int totalValue = 0;
totalValue = int.Parse(Label9.Text) * int.Parse(Label6.Text);
Label8.Text = totalValue.ToString();
こんにちはプログラマー。上記の行が機能しない理由がわかりません。上記の行は、次のようなランタイムエラーを表示します。入力文字列は、正しい形式ではありませんでした。
重複の可能性:
計算中のエラーメッセージ
int totalValue = 0;
totalValue = int.Parse(Label9.Text) * int.Parse(Label6.Text);
Label8.Text = totalValue.ToString();
こんにちはプログラマー。上記の行が機能しない理由がわかりません。上記の行は、次のようなランタイムエラーを表示します。入力文字列は、正しい形式ではありませんでした。
他の質問にも投稿したようint.tryParse()
に、代わりに使用してみてください。何か問題が発生した場合は、その例外の代わりに0が返されます。
このような:
int a;
int b;
int.TryParse("a",out a);
int.TryParse("5",out b);
int totalValue = a * b;
Console.WriteLine(totalValue.ToString());
このコードは、文字列に「a」を解析できないため、コンソールに「0」を書き込みます。
int a;
int b;
int.TryParse("5",out a);
int.TryParse("5",out b);
int totalValue = a * b;
Console.WriteLine(totalValue.ToString());
このコードは、「5」を整数に解析できるため、コンソールに「25」を書き込みます。
これは、一方または両方の入力文字列が解析に有効な形式ではなかったことを意味します。
Label9
に含まれている値をチェックしてLabel6
、正しい形式と範囲であることを確認してください。
または、変換プロセスの一部として確認してください。
string str = "xyzzy";
int num;
bool ok = int.TryParse (str, out num);
if (!ok) {
// Generate error and return.
}
// Use num for whatever.
特定のコードには、次のようなものを使用できます(フォームのエラーインジケーターを含む)。
int num1, num2, prod = 0;
LabelErr.Text = "";
if (int.TryParse (Label9.Text, out num1) && int.TryParse (Label6.Text, out num2))
prod = num1 * num2;
else
LabelErr.Text = "One or both input values are invalid";
Label8.Text = prod.ToString();
以下に示すように、値を解析し、不可能な場合はエラーを表示するようにしてください。
int totalValue = 0;
int firstValue, secondValue;
if (!int.TryParse(Label9.Text, out firstValue))
throw new Exception("Text of label 9 wasn't a number);
if (!int.TryParse(Label6.Text, out secondValue))
throw new Exception("Text of label 6 wasn't a number);
totalValue = firstValue * secondValue;
Label8.Text = totalValue.ToString();