2016-03-28 9 views
3

Ich versuche double Werte in eine CSV-Datei zu exportieren alsexportieren doppelten Wert in CSV

double[] arr = new double[] { 0.0000074, 0.00000123, 0.0000001254 }; 
using (StreamWriter writer = new StreamWriter(@"D:\Test.csv")) 
{ 
    foreach (double item in arr) 
    { 
     writer.WriteLine(item); 
    } 
}; 

Der Ausgang folgt, wenn CSV in Excel/Notepad geöffnet ist das gleiche ist und wie

7.40E-06 
1.23E-06 
1.25E-07 

folgt Erwartet, dass die Ausgabe der Eingabe in der Datei CSV entspricht. Ich freue mich auf jede Art von Input/Anregungen. Vielen Dank.

+0

Die Zahl gleich sind, also warum fragst du? – jdweng

Antwort

5

Sie können das Format der doublestring indem Gleitpunktformat wie "F9" angeben:

double[] arr = new double[] { 0.0000074, 0.00000123, 0.0000001254 }; 
using (StreamWriter writer = new StreamWriter(@"D:\Test.csv")) 
{ 
    foreach (double item in arr) 
    { 
     writer.WriteLine(item.ToString("F9")); //note the F9 
    } 
}; 

9 ist die Menge der Nummer, die Sie nach Dezimaltrennzeichens halten wollen (.). Sie könnten die Nummer angeben, wie Sie möchten (zB F10, F11, etc ...)

2

Speichern Sie sie als String statt für Double;

using (StreamWriter writer = new StreamWriter(@"D:\Test.csv")) 
{ 
    foreach (double item in arr) 
    { 
     writer.WriteLine(item.ToString("#.#########"); 
    } 
}; 

für die Formatierung Sie eine der following verwenden: (Doppelklick auf die Linie zwischen A & B) benötigen Sie

"C", "E", "e", "F", "G", "N", "P", 
"R", "#,000.000", "0.###E-000", 
"000,000,000,000.00###" 
0

enter image description here

nur die Spaltenbreite zu erweitern.

1

Wenn Sie wollen darstellen ein Wert in einigen speziellen Format (zum Beispiel mit führenden Nullen) verwenden Formatierung: String.Format(). Sie haben keine Notwendigkeit in StreamWriter: put File.WriteAllLines und lassen .Net die Arbeit für Sie tun:

File.WriteAllLines(@"D:\Test.csv", 
    arr.Select(item => item.ToString("F9", CultureInfo.InvariantCulture)));