2016-09-26 10 views
-2

IntDoubleに変換するとエラーが発生します。私の次の行Average[y] = Average[y] + Students[i].Marks;も機能しません。だからint[]double[]に変換するにはどうすればよいですか?C#でIntをDoubleに変換できません

public static double[] Averages(StudentMarks[] Students, int amount, string[] DifferentGroups, int GroupAmount, out double[] Average) 
    { 
     Average = new double[Max]; 
     int y = 0; 
     int CountGroups = 0; 
     //int sum = 0; 
     for (int i = 0; i < amount; i++) 
     { 
      if (Students[i].Group == DifferentGroups[y]) 
      { 
       Convert.ToDouble(Students[i].Marks); 
       //Average[y] = Average[y] + Students[i].Marks; 
      } 
     } 
     return Average; 
    } 

メイン:

static void Main(string[] args) 
    { 
     int amount; 
     StudentMarks[] Students; 
     string[] DifferentGroups; 
     int GroupAmount; 
     double[] Average; 
     ReadData(out Students, out amount); 
     DifferentGroups = FindDifferentGroups(Students, amount, out DifferentGroups, out GroupAmount); 
     Average = Averages(Students, amount, DifferentGroups, GroupAmount, out Average); 

クラス:

 public const int Max = 50; 
    public string Surname { get; set; } 
    public string Name { get; set; } 
    public string Group { get; set; } 
    public int AmountOfMarks { get; set; } 
    public int[] Marks { get; set; } 

だから、学生[i]を.Marksが配列です。

+1

'Students [i] .Marks'は配列ですか? –

+2

'Convert.ToDouble' _returns_ a double - 整数プロパティをdoubleにしません。 –

+0

実際には配列かどうかはわかりません。おそらく、私に数秒を与える、私は投稿を編集します。 – Andrius

答えて

2

Convert.ToDoubleを返します。を返します。これは、整数プロパティまたは変数をdoubleにしません。

私は、あなたがしたいと思う:

 if (Students[i].Group == DifferentGroups[y]) 
     { 
      double mark = Convert.ToDouble(Students[i].Marks); 
      Average[y] = Average[y] + mark; 
     } 

か、単に:

 if (Students[i].Group == DifferentGroups[y]) 
     { 
      Average[y] = Average[y] + Convert.ToDouble(Students[i].Marks); 
     } 
0

すべてConvert.ToXXX機能が新しい値を返す。したがって、それを期待して、戻り値をローカル変数に代入する必要があります。以下のような

何か:

double YourMark = Convert.ToDouble(Students[i].Marks); 
0

それでは、どのように[] INT []倍にする変換することができますか?

プログラミングによって。あなたはそれを行うコードを書く。

var d = new double[Students[i].Marks.Length]; 
for (int j = 0; j < Students[i].Marks.Length; ++j) 
{ 
    d[j] = Convert.ToDouble(Students[i].Marks[j]); 
} 

または使用LINQ:メソッドの呼び出しはコンパイルされませんか、あなたはそれが、ちょうどそれをグーグルかもしれない望んように動作しません

var d = Students[i].Marks.Select(n => Convert.ToDouble(n)).ToArray(); 

次の時間。 Googleとread the documentation。それから、私のような、あなたにグーグルに言ってくれる人のことを聞く必要はありません。

関連する問題