2012-12-04 67 views
0

我有這樣的簡化方法:雙某些字符串格式

private string GetStringValue(object Value) 
{ 
    return ((double)Value).ToString(); 
} 

它噴出了:

1.8E-09

我打算儘管得到這樣的格式:

1.8 e-009

這是否容易實現?

回答

6

望着documentation for custom numeric format strings,我認爲你想要的:(使用0.###E-000如果只想爲負指數的符號)

// Separate variable just for clarity 
double number = (double) Value; 
return number.ToString("0.###e+000"); 

+0

感謝。我意識到這一點,但不確定我是否可以影響E位。順便說一句,請更改E + 000 - > e + 000 – cs0815

+0

是否可以抑制e讓我們說逗號後面少於4個數字的任何東西? – cs0815

+0

@csetzkorn:逗號是多少?你的意思是小數點嗎?如果是這樣,我不認爲*,但我可能是錯的。 –

0
return string.Format("{0:0.###E+000}", value); 
+0

你爲什麼要明確調用'string.Format'而不是僅僅使用'value.ToString'格式說明符?當我只想格式化單個值時,後者最終會更簡單。 –

+0

IIRC object.Format()沒有formater超載。 –

+0

不,所以你會先把它轉換爲'double' - 無論如何,IMO都是更清潔的,因爲它會在你的代碼中顯示你期待的值的類型。如果你真的想要,你也可以選擇「IFormattable」。假設值爲雙倍的 –