我需要用点分隔符在文本文件中写几个双精度。我知道,这段代码是解决方案:
StreamWriter f = new StreamWriter(file, Encoding.ASCII, 128, false);
double a = 1.057887;
f.Write(a.ToString("G5", CultureInfo.InvariantCulture));
但我有太多数字要写,所以我尝试了这个答案的方法:
f.Write("{0:0.#####} {0:0.#####} {0:0.#####} {0:0.#####} {0:0.#####}", a, a, a, a, a));
并试图在全球范围内改变文化:
System.Threading.Thread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
但是第一个'{0:0.#####}'导致逗号分隔符(1,05789),CS0120中的第二个'Thread':非静态字段需要对象引用,方法,或财产。
另一个问题是:
f.Write("{0:0.#####} {0:0.#####} ...", a, a, ...);
复制字符串后的第一个对象,所以即使我写了,我也将所有数字都设为“a”
f.Write("{0:0.#####} {0:0.#####} ...", a, b, ...);