2013-03-27 103 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