2017-05-08 49 views
1

我試圖得到雙倍價值的字符串解釋與點作爲分隔符和小數點後兩位數,但(?):的NumberFormatInfo NumberDecimalDigits不工作

double d = 8.78595469; 
Console.WriteLine(d.ToString("F")); 

返回8,78

所以我試圖用NumberFormatInfo根據this問題類:

double d = 8.78595469; 

var formatInfo = new NumberFormatInfo 
{ 
    NumberDecimalSeparator = ".", 
    NumberDecimalDigits = 2 
}; 

Console.WriteLine(d.ToString(formatInfo)); 

返回8.78595469,以及組合通道ator就是我想要的點,但爲什麼有兩位以上的小數位?

編輯:

我不是尋找其他方式來實現這一點(我可以用.ToString("0.00", CultureInfo.InvariantCulture),但我不知道爲什麼NumberDecimalDigits不工作()

+0

d.ToString(「F」,formatInfo)? –

回答

3

如果你想使用? NumberFormatInfo,則必須使用N格式說明符。

double d = 8.78595469; 

var formatInfo = new NumberFormatInfo 
{ 
    NumberDecimalSeparator = ".", 
    NumberDecimalDigits = 2 
}; 

Console.WriteLine(string.Format(formatInfo, "{0:N}", d)); <--- N specifier