C# 将双精度格式设置为字符串

C# 将双精度格式设置为字符串,c#,string,formatting,C#,String,Formatting,我做这样的格式化: str += String.Format("{0,-25}", doubl); 我需要我的数字除以空格,这就是为什么我使用{0,-25} 但有时我会得到像2.15083096934631E-05这样的数字 如果没有E-05,如何获得0000021508这样的传统数字 doubl的值类似于0.000021436573129839587使用: 使用: 尝试使用double.ToString格式F-不动点 str=doubleValue.ToString("F10"); 尝试

我做这样的格式化:

 str += String.Format("{0,-25}", doubl);
我需要我的数字除以空格,这就是为什么我使用{0,-25}

但有时我会得到像2.15083096934631E-05这样的数字

如果没有E-05,如何获得0000021508这样的传统数字

doubl的值类似于0.000021436573129839587

使用:

使用:

尝试使用double.ToString格式F-不动点

str=doubleValue.ToString("F10");
尝试使用double.ToString格式F-不动点

str=doubleValue.ToString("F10");

您可以通过将F或N传递给ToString来格式化输出,以表示更多的小数点。我认为您必须指定类似N15的内容,根据您的值找到您需要的合适限制,但这里的问题是实际数字后面跟着0

[double value].ToString("N15") // this should output without the exponent sign
要避免尾随零,只需修剪

[double value].ToString("N15").TrimEnd('0');

您可以通过将F或N传递给ToString来格式化输出,以表示更多的小数点。我认为您必须指定类似N15的内容,根据您的值找到您需要的合适限制,但这里的问题是实际数字后面跟着0

[double value].ToString("N15") // this should output without the exponent sign
要避免尾随零,只需修剪

[double value].ToString("N15").TrimEnd('0');

我之前的所有答案都很好,但对我来说,我有一个非常难看的问题。我的“答案”将由零填充,如果只需要5个零,那么答案将非常庞大。我想到了这个:

double Q = ((1000 * 1000) * (2 * 2));
double Answer = ((Q * 199) / 2);
this.AnswerTBox1.Text = String.Format("{0:F" + Answer.ToString().Length + "}", Answer);
这是不必要的零的“丑陋”

祝你一切顺利


克里斯

我之前的所有答案都很好,但对我来说,我有一个非常难看的问题。我的“答案”将由零填充,如果只需要5个零,那么答案将非常庞大。我想到了这个:

double Q = ((1000 * 1000) * (2 * 2));
double Answer = ((Q * 199) / 2);
this.AnswerTBox1.Text = String.Format("{0:F" + Answer.ToString().Length + "}", Answer);
这是不必要的零的“丑陋”

祝你一切顺利


克里斯

2.15083096934631E-05是0.0000215,你知道吗?2.15083096934631E-05不是2.1508309。大约是20000215083090000021508309——我同意。但是如何用这种方式表示呢?2.15083096934631E-05是0.0000215,你知道吗?2.15083096934631E-05不是2.1508309。大约是20000215083090000021508309——我同意。但如何以这种方式表现呢?