При правильном подсчёте получаются значения равные 0 - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, друзья. Мучает очень сильно такой вопрос: В цикле(который я отделил пунктирной линией) происходит подсчет некоторых значений в переменную

j[p]

. Вот сам подсчет

j[p] = (q[i]/tests_count)*100, где q[i] = {1,1,2,1} и tests_count = 5;

Как видно, значения все имеются и я каждое значение (q[i], tests_count) выводил отдельно в listbox для проверки, всё так, как описал выше, но при подсчёте, все элементы на выходе

(j[p])

равны нулю. Никто не подскажет, что за полтергейст крадет мне мои проценты и как с ним бороться?
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            selected_product = comboBox2.Items[comboBox2.SelectedIndex].ToString();
            double tests_count;
            double occus_count;
 
            MySqlConnection connect = new MySqlConnection("server=" + server + ";user=" + login + ";database=" + database + ";password=" + password + ";");
            MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM tests WHERE selected_product=" + "'" + selected_product + "'", connect);
            MySqlCommand cmd2 = new MySqlCommand("SELECT COUNT(*) FROM occupation", connect);
            MySqlCommand cmd3 = new MySqlCommand("SELECT * FROM occupation", connect);
            MySqlCommand cmd4 = new MySqlCommand("SELECT selected_occu FROM tests WHERE selected_product=" + "'" + selected_product + "'", connect);
            connect.Open();
            tests_count = Convert.ToInt32(cmd.ExecuteScalar());
            occus_count = Convert.ToInt32(cmd2.ExecuteScalar());
            connect.Close();
            MySqlDataReader dr;
            MySqlDataReader dr2;
            MySqlDataReader dr3;
            int[] q = new int[Convert.ToInt32(occus_count)];
            string[] occus_line = new string[Convert.ToInt32(occus_count)];
            string[] tests_line = new string[Convert.ToInt32(tests_count)];
            connect.Open();
            dr = cmd3.ExecuteReader();
            int t = 0;
            while (dr.Read())
            {
                occus_line[t] = dr["occu_pation"].ToString();
                t++;
            }
            connect.Close();
            int p = 0;
            double[] j = new double[Convert.ToInt32(tests_count)];
            string[] s = new string[Convert.ToInt32(tests_count)];
            chart2.Series[0].Points.Clear();
//----------------------------------------------------------------------------------------------------------------------------------------
            for (int i = 0; i < occus_count; i++)
            {
                connect.Open();
                dr2 = cmd4.ExecuteReader();
                while (dr2.Read())
                {
                    if (occus_line[i] == dr2["selected_occu"].ToString())
                    {
                        q[i] = q[i] + 1;
                    }
                }
                connect.Close();

                if (q[i] > 0)
                {
 
                    MySqlCommand cmd5 = new MySqlCommand("SELECT * FROM occupation WHERE occu_id=" + "'" + (i + 1) + "'", connect);
                    j[p] = (q[i] / tests_count);
 
                    connect.Open();
                    dr3 = cmd5.ExecuteReader();
                    while (dr3.Read())
                    {
 
                        s[p] = dr3["occu_pation"].ToString();
 
                    }
                    chart2.Series[0].Points.AddXY(s[p] + " " + Math.Round(j[p]) + " %", Math.Round(j[p]));
                    listBox1.Items.Add(s[p]);
                    p++;
                    connect.Close();
 
                }
 
            }
//----------------------------------------------------------------------------------------------------------------------------------------
        }

Решение задачи: «При правильном подсчёте получаются значения равные 0»

textual
Листинг программы
j[p] = (double)q[i] / tests_count;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5