2012-07-17 58 views
1

我做出这样的格式:双格式为String

str += String.Format("{0,-25}", doubl); 

我需要我的号码,用空格分割,这就是为什么我使用{0,} -25。

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

如何让传统的号码,如0,000021508,没有 “E-05”?

doubl的价值是一样0.000021436573129839587

+1

2.15083096934631E-05是0.0000215,你知道吗? – xanatos 2012-07-17 07:30:56

+0

2.15083096934631E-05不是2.1508309。它是〜0,000021508309 – 2012-07-17 07:31:46

+0

0,000021508309 - 我同意。但如何以这种方式展示它? – 2012-07-17 07:32:34

回答

2

尝试double.ToString("format")(F - 定点)

str=doubleValue.ToString("F10"); 
+0

[F - 固定点和10 - 十进制数字](http://msdn.microsoft.com /en-us/library/dwhawy9k.aspx) – adatapost 2012-07-17 07:43:04

0

你可以通过在格式化输出FNToString(),代表更多小数点,我认为你会必须指定类似N15(找到你根据你的价值观所需要的合适的限制),但这里的问题是你的实际数量后尾随0​​

[double value].ToString("N15") // this should output without the exponent sign 

为了避免拖尾,你只需要修剪

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

我之前的所有答案都很好,但对我来说,我有一个非常难看的问题。我的'答案'将由Zero填充,如果只有5个零需要,它会使答案非常庞大。我想出了这个:

double Q = ((1000 * 1000) * (2 * 2)); 
double Answer = ((Q * 199)/2); 
this.AnswerTBox1.Text = String.Format("{0:F" + Answer.ToString().Length + "}", Answer); 

这整齐的'不友善'的不必要的零。

一切顺利

克里斯