在德语中,小数分隔符是“,”,数值分隔符是“;”。而在英语/其他语言中,小数分隔符为“.”,数值分隔符为“,”。
我希望创建一个与当前文化无关的 .csv 文件。也就是说,该 .csv 文件应始终将“.”作为小数分隔符,将“,”作为数值分隔符。
以下是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Globalization;
namespace CSV_FILE_FORMAT
{
class Program
{
static void Main(string[] args)
{
string aFileName = "result.csv";
FileStream aFileStream = new FileStream(aFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
StreamWriter m_StreamWriter = new StreamWriter(aFileStream);
double[] values = new double[] { 10.5, 20.3, 30.2 };
for(int i = 0; i < values.Length;i++)
{
m_StreamWriter.Write(values[i].ToString(CultureInfo.InvariantCulture));
m_StreamWriter.Write(",");
}
}
}
}
这段代码存在的问题是如果操作系统语言为德语,小数分隔符会显示为“,”而不是“.”。请让我知道代码是否缺少某些内容。
CultureInfo.InvariantCulture
可以解决这个问题。所以还有其他地方我可能忽略了。 - Tim Schmelter