1

このコードを以下に示します。これは、2 つの変数を乗算し、 textbox からの量を追加する必要がありますkpriplac。しかし、乗算された値が 10 で、kpriplac 値がたとえば 10 の場合、出力は 1010 になります。しかし、その出力を 20 にする必要があります。これも確認しました

どこで間違えますか?これを読んでくれてありがとう。

if (double.TryParse(comboBoxText, out comboxValue) && int.TryParse(textBox16.Text.Trim(), out textboxValue))
{
    textBox19.Text = ((comboxValue * textboxValue) + (kpriplac.Text)).ToString();
}
4

5 に答える 5

2

+文字列を含む演算子は、連結演算子として機能します。文字列を int または float に解析する必要があります。

例えば:

textBox19.Text = ((comboxValue * textboxValue) + Convert.ToInt32(kpriplac.Text)).ToString();

編集

次のことを確認しkpriplac.Textてください。

  • 空ではありません
  • スペースのみを含まない
  • 文字または変換できない文字列が含まれていません。

その場合は、それに応じて処理します。

クラス MSDN の変換

于 2013-07-22T09:22:44.067 に答える
2

現状では、コードは暗黙的ToString()(comboxValue * textboxValue)式を呼び出して文字列連結を実行している文字列に数値を追加しています。

kpriplac.Textと の場合とほぼ同じ方法で、の値も数値型に解析する必要がありcomboBoxTextますtextBox16.Text

于 2013-07-22T09:24:23.573 に答える
1

あなたはこれに直面するので

 (comboxValue * textboxValue)

整数ですが、

 kpriplac.Text 

文字列です

C# では string + int = string です。 掛け算が 10 を返すとしましょう。そして、テキスト ボックスにも 10 が入っています。

それで何が起こるかは

        10 + "10"  = 1010

コードを次のように変更します

 if (double.TryParse(comboBoxText, out comboxValue) && int.TryParse(textBox16.Text.Trim(), out textboxValue))
 {
    int tempValue = 0;
    if(int.TryParse(kpriplac.Text,out tempValue))
         textBox19.Text = ((comboxValue * textboxValue) + tempValue).ToString();
 }
于 2013-07-22T09:29:12.997 に答える
1

すべての文字列で int.Parse を呼び出し、解析された値を乗算または加算して、最終的にそれらを文字列に戻す必要があります。

指定された文字列が実際に整数であることが確実な場合にのみ、int.Parse を使用してください。そうでない場合は、例外がスローされます。確信が持てず、手動で処理したい場合は、代わりに int.TryParse を使用してください。

于 2013-07-22T09:24:27.590 に答える
0

これを試して

Convert.ToInt32(((comboxValue * textboxValue) + (kpriplac.Text))).ToString();

于 2013-07-22T09:23:33.907 に答える