我在一个文件中写数字,它们应该是这样的:
5.22226E+00 -2.31833E-01 -9.28221E-01 5.23851E+00 -2.33228E-01 -9.33804E-01
5.25481E+00 -2.34622E-01 -9.39387E-01 5.27116E+00 -2.36016E-01 -9.44969E-01
5.28756E+00 3.65029E-01 9.14477E-01 5.30401E+00 3.66841E-01 9.19016E-01
5.32051E+00 3.68653E-01 9.23556E-01 5.33707E+00 3.70464E-01 9.28095E-01
5.35367E+00 3.72276E-01 9.32634E-01 5.37033E+00 3.74088E-01 9.37174E-01
相反,它们是:
5.22226E+00 -2.31833E-01 -9.28221E-01 5.23851E+00 -2.33228E-01 -9.33804E-01
5.25481E+00 -2.34622E-01 -9.39387E-01 5.27116E+00 -2.36016E-01 -9.44969E-01
5.28756E+00 3.65029E-01 9.14477E-01 5.30401E+00 3.66841E-01 9.19016E-01
5.32051E+00 3.68653E-01 9.23556E-01 5.33707E+00 3.70464E-01 9.28095E-01
5.35367E+00 3.72276E-01 9.32634E-01 5.37033E+00 3.74088E-01 9.37174E-01
不同之处在于,当符号为“+”时,我没有插入空格。我怎么能这样做?
我使用的代码是
myNumber.ToString("0.00000E+00", CultureInfo.InvariantCulture);
答案 0 :(得分:3)
PadLeft
应该很好地解决这个问题:
myNumber.ToString("0.00000E+00", CultureInfo.InvariantCulture).PadLeft(12);
答案 1 :(得分:3)
最好的方法是使用conditional formatting:
myNumber.ToString(" 0.00000E+00;-0.00000E+00", CultureInfo.InvariantCulture);
另一种(更详细)的方法:
string s = myNumber.ToString("0.00000E+00", CultureInfo.InvariantCulture);
if (myNumber >= 0)
s = " " + s;
答案 2 :(得分:1)
正如您所看到的here,分号根据正数设置格式,然后是负数。
myNumber.ToString(" 0.00000E+00;-0.00000E+00", CultureInfo.InvariantCulture);
如果需要,您还可以强制显示+
,或更改-
符号的显示方式。