将双值导出为CSV

时间:2016-03-28 06:58:38

标签: c# csv double export-to-csv

我正在尝试将double值导出到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);
    }
};

CSV中打开Excel/Notepad时的输出是相同的,如下所示

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

期望输出与CSV文件中的输入相同。期待任何形式的意见/建议。感谢。

4 个答案:

答案 0 :(得分:5)

您可以通过设置double等浮点格式来指定string "F9"的格式:

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是小数点分隔符后要保留的数量(.)。您可以根据需要指定数字(例如F10F11等等。)

答案 1 :(得分:2)

将它们保存为字符串而不是double;

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

对于格式化,您可以使用following

中的任何一个
"C", "E", "e", "F", "G", "N", "P", 
"R", "#,000.000", "0.###E-000",
"000,000,000,000.00###"

答案 2 :(得分:1)

如果您希望代表某些特殊格式的值(例如,使用前导零),请使用格式String.Format()。您无需StreamWriter:放File.WriteAllLines并让.Net为您完成工作:

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

答案 3 :(得分:0)

enter image description here

您只需要扩展列宽(双击A& B之间的行)。