2012-11-22 41 views

回答

2

對我而言,你試圖達到的目標有點不清楚,但有一點很清楚,就是你用千位分隔符和逗號分隔符交換了位置。它應該是:

value.ToString("00,0000.00") 

在該格式中的字符串,逗號字符(「」)是逗號分隔符字符的佔位符,它並不代表一個文字逗號。與句點字符相同('。'):它是數字組分隔符的佔位符。這些將被替換爲使用的格式提供程序中的實際逗號和數字組分隔符(如果沒有任何內容傳遞給ToString方法,則爲當前文化)。

仍然可能是輸出不是你想要的。我得到

instance: 
double value = 123456.7890123; 

// prints "123 456,79" 
Console.WriteLine(value.ToString("00,0000.00")); 

如果希望其他團體,你就需要提供一個合適的對象NumberFormatInfo以下的輸出:

double value = 123456.7890123; 
NumberFormatInfo nfi = new NumberFormatInfo 
    { 
     NumberDecimalDigits = 2, 
     NumberDecimalSeparator = ".", 
     NumberGroupSeparator = ",", 
     NumberGroupSizes = new[] { 4, 2 } 
    }; 
// prints "12,3456.79" 
Console.WriteLine(value.ToString("00,0000.00", nfi)); 
+0

它的工作原理; ) 謝謝。 – ogrod87

2
value.ToString("00.0000\\,00"); 
+0

使用en-US文化,將輸出12345.6789作爲「12345.6789,00」。我的書很迷惑。 –

+0

@FredrikMörk完全同意你的看法。但如果這是他想做的事,那麼這就是你如何做到的。我沒有說我同意這種格式;)。 –