在C#中使用decimal.ToString()获取NN.NNNNN格式

时间:2012-11-22 07:29:37

标签: c# .net

我怎么能得到格式NN.NNNN,十进制后的NN.ToString()

我试过了:

value.ToString("00.0000,00")

但是在输出上我有NN.NNNNNN格式,没有逗号...

有什么想法吗?

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分:2)

value.ToString("00.0000\\,00");