2013-03-27 66 views
1

我有我认为的一个简单问题。 我有一个我想在列表框中显示的双打集合。 至少它应该显示三位小数,但是,如果有三位以上的数字,它应该显示全部。如何以最小精度格式化双精度

我想这会工作,但它最终只显示小数点第3位:

string.Format("{0} {1} {2}", freq.ToString("#0.000#", CultureInfo.CurrentCulture), hz, band); 

也许我失去了一些东西。我真的不想手动检查位数并在必要时转换格式块。

谢谢。

回答

0

大概:

freq.ToString("0.000#") 

这会给你的小数点后至少3个数字。

所以:

4.25 --> 4.250 

4.2555 --> 4.2555 
1

只需添加更多"#"到您的格式字符串:

freq.ToString("#0.000#############", CultureInfo.CurrentCulture) 

double15-16 digits precision,所以13 #应该让所有的情况下工作。

+1

'freq = 1e-7/3'?不要指望尾数的大小告诉你最小有效数字的位置值是多少。 – 2013-03-27 12:49:27

+0

我希望它不会那么简单。谢谢。 – sanderson 2013-03-27 19:29:23