2012-11-22 16 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完全同意你的看法。但如果这是他想做的事,那么这就是你如何做到的。我没有说我同意这种格式;)。 –