2013-08-04 44 views
0

我寫輸出輸入的基-10數字的二進制平均一個控制檯應用程序:Convert.ToString構建時錯誤

 Console.WriteLine("Enter numbers to find the average of. Seperate each number with a pound sign(#)"); 
     string[] n = Console.ReadLine().Split('#'); 
     List<string> final = new List<string>(); 
     final.AddRange(n); 
     double t = 0; 
     for (int i = 0; i < final.Count; i++) 
     { 
      t = t + Convert.ToDouble(final[i]); 
     } 
     int ct = final.Count; 
     double average = t/ct; 
     string binAv = Convert.ToString(average, 2); 

但是,編譯器在「轉換生成一個累積時間誤差。 ToString(平均,2)「行。 錯誤:

The best overloaded method match for 'System.Convert.ToString(double, System.IFormatProvider)' has some invalid arguments

如何解決這個問題?謝謝。

+3

你可以通過傳遞一個IFormatProvider而不是2來解決這個錯誤?你甚至讀過錯誤信息嗎? –

+1

你想看到作爲二進制形式的*雙*爲例如2.5 – I4V

+1

@ Pierre-LucPineault - 我想起來一樣,但[出現有效](http://stackoverflow.com/questions/923771/quickest-way-將其轉換爲基數爲10的數字到任何網格內的基數),但它可能只適用於整數,用於在此進行基礎轉換 – Sayse

回答

0
double d = 2.2; 
var bin = String.Join("", BitConverter.GetBytes(d) 
          .Select(x => Convert.ToString(x, 2).PadLeft(8,'0'))); 
+2

downvote的原因是什麼? – I4V