2016-12-05 13 views
0

2つの異なるテキストボックスにある2つの値を除算し、3番目のテキストボックスに結果を表示しようとしています。テキストボックス内の値を分割し、3番目のテキストボックスに値を生成

private void Divide() 
{ 
    int val1, val2; 
    if (!string.IsNullOrEmpty(mergeSortTime.Text) && !string.IsNullOrEmpty(selectionSortTime.Text)) 
    { 
    int.TryParse(mergeSortTime.Text, out val1); 
    int.TryParse(selectionSortTime.Text, out val2); 
    resetTimeDisplay.Text = (val1/val2).ToString(); 
    } 
} 

と私はここにメソッドを呼び出す:

private void selectionSortButton_Click(object sender, EventArgs e) 
{ 

    selectionSortButton.Enabled = false; 
    button1.Location = resetButton.Location; 
    button1.Visible = true; 
    InitializeForm(); 
    sw.Start(); 
    bgWorker.RunWorkerAsync(); 
    while (bgWorker.IsBusy) 
    Application.DoEvents(); 
    idList.SelectionSort(); 
    if (!bgWorkCancelled) 
    DisplayIDList(displayDGV); 
    sw.Stop(); 
    TimeSpan ts = sw.Elapsed; 
    string elapsedTime = String.Format("{0:0}" + "." + "{1:0}",ts.Seconds, ts.Milliseconds); 
    selectionSortTime.Text = elapsedTime; 
    mergeSortButton.Enabled = false; 
    quickSortButton.Enabled = false; 
    resetButton.Location = button1.Location; 
    button1.Visible = false; 
    resetButton.Visible = true; 
    Divide(); 
} 

それは私の入力は完全に別のテキストボックスに数ある今どのように動作するかとのリストを生成ここでのコードは、私がこれまで持っています順序付けられていない値。次に2つの異なるソート方法を使用する2つのボタンがあり、その隣に値をソートするのにどれくらい時間がかかるかを示す表示があります。私は2つの表示値を分割する必要があります。私に「0で割ろうとしました」というエラーが表示され、コードのデバッグを試みましたが、val1とval2の両方の値が0であることがわかりました。 mergeSortTime.TextselectionSortTime.Textの両方に正しい値があります。

誰かが洞察力を共有していますか?

ありがとうございました!あなたが本当に何をしたいのか

答えて

0

は次のとおりです。

private void Divide() 
{ 
    double val1 = 0.0; 
    double val2 = 0.0; 
    double reset = 0.0; 
    if (!string.IsNullOrEmpty(mergeSortTime.Text) && !string.IsNullOrEmpty(selectionSortTime.Text)) 
    { 
     //Assuming the value entered on the textboxes are numeric the second textbox is greater than 0. 
     val1 = double.Parse(mergeSortTime.Text); 
     val2 = double.Parse(selectionSortTime.Text); 
     //To make sure that val2 is not equal to 0 before the calculation 
     if(val2 != 0) 
    { 
    reset = val1/val2; 
    resetTimeDisplay.Text = reset.ToString(); 
    } 
    } 
} 
+0

わかりました。私はちょうど私のコードを上記に切り替えて、私はエラーが発生します: "入力文字列が正しいフォーマットではありません" int.Parse(mergeSortTime.Text) '私は私が他のアプローチで同じエラーを得たと思う撮影。 – Luke

+0

私もあなたの助けを感謝します! – Luke

+0

このエラーが発生する理由は、1つまたはすべてのテキストボックスに数値以外の値を入力したためです。数値だけを入力してください。また、2番目のテキストボックスに入力した値が0でないことを確認します。そうでない場合は、0で除算例外が発生します。 – Auguste

関連する問題