我有這樣的簡化方法:雙某些字符串格式
private string GetStringValue(object Value)
{
return ((double)Value).ToString();
}
它噴出了:
1.8E-09
我打算儘管得到這樣的格式:
1.8 e-009
這是否容易實現?
我有這樣的簡化方法:雙某些字符串格式
private string GetStringValue(object Value)
{
return ((double)Value).ToString();
}
它噴出了:
1.8E-09
我打算儘管得到這樣的格式:
1.8 e-009
這是否容易實現?
望着documentation for custom numeric format strings,我認爲你想要的:(使用0.###E-000
如果只想爲負指數的符號)
// Separate variable just for clarity
double number = (double) Value;
return number.ToString("0.###e+000");
您需要使用String.Format並使用正確的格式字符串。
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
這應該有助於十進制格式字符串。
所以
(double)Value.ToString("E")
會爲EN-US做到這一點。
return string.Format("{0:0.###E+000}", value);
你爲什麼要明確調用'string.Format'而不是僅僅使用'value.ToString'格式說明符?當我只想格式化單個值時,後者最終會更簡單。 –
IIRC object.Format()沒有formater超載。 –
不,所以你會先把它轉換爲'double' - 無論如何,IMO都是更清潔的,因爲它會在你的代碼中顯示你期待的值的類型。如果你真的想要,你也可以選擇「IFormattable」。假設值爲雙倍的 –
感謝。我意識到這一點,但不確定我是否可以影響E位。順便說一句,請更改E + 000 - > e + 000 – cs0815
是否可以抑制e讓我們說逗號後面少於4個數字的任何東西? – cs0815
@csetzkorn:逗號是多少?你的意思是小數點嗎?如果是這樣,我不認爲*,但我可能是錯的。 –