将双精度值导出到 CSV
Exporting double value 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);
}
};
在Excel/Notepad
中打开CSV
时输出相同,如下
7.40E-06
1.23E-06
1.25E-07
期望输出与 CSV
文件中的输入相同。期待任何一种input/suggestions。谢谢。
您可以通过输入浮点格式来指定 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
是您要在小数点分隔符 (.
) 后保留的数字量。您可以根据需要指定数字(例如 F10
、F11
等...)
将它们保存为字符串而不是双精度;
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###"
您只需扩大列宽(双击 A 和 B 之间的线)。
如果您想表示某种特殊格式的值(例如前导零) 使用格式化:String.Format()
。您不需要 StreamWriter
:输入 File.WriteAllLines
并让 .Net 为您完成工作:
File.WriteAllLines(@"D:\Test.csv",
arr.Select(item => item.ToString("F9", CultureInfo.InvariantCulture)));
我正在尝试将 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);
}
};
在Excel/Notepad
中打开CSV
时输出相同,如下
7.40E-06
1.23E-06
1.25E-07
期望输出与 CSV
文件中的输入相同。期待任何一种input/suggestions。谢谢。
您可以通过输入浮点格式来指定 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
是您要在小数点分隔符 (.
) 后保留的数字量。您可以根据需要指定数字(例如 F10
、F11
等...)
将它们保存为字符串而不是双精度;
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###"
您只需扩大列宽(双击 A 和 B 之间的线)。
如果您想表示某种特殊格式的值(例如前导零) 使用格式化:String.Format()
。您不需要 StreamWriter
:输入 File.WriteAllLines
并让 .Net 为您完成工作:
File.WriteAllLines(@"D:\Test.csv",
arr.Select(item => item.ToString("F9", CultureInfo.InvariantCulture)));