格式为double类型,最小小数位数

时间:2011-09-15 15:37:01

标签: c# .net

我需要格式化双重类型,使其至少有两位小数,但不限制最大小数位数:

5     -> "5.00"
5.5   -> "5.50"
5.55  -> "5.55"
5.555 -> "5.555"
5.5555 -> "5.5555"

我怎样才能实现它?

3 个答案:

答案 0 :(得分:36)

您可以将0格式标识符用于非可选数字,#表示可选数字:

n.ToString("0.00###")

此示例为您提供最多五位小数,您可以根据需要添加更多#个位置。

答案 1 :(得分:3)

ToString("0.00#")这样的东西应该可行

在这种情况下,最多可以有3个小数位,因此请根据需要添加哈希值。

答案 2 :(得分:3)

试试这个

    static void Main(string[] args)
    {
        Console.WriteLine(FormatDecimal(1.678M));
        Console.WriteLine(FormatDecimal(1.6M));
        Console.ReadLine();

    }

    private static string FormatDecimal(decimal input)
    {
        return Math.Abs(input - decimal.Parse(string.Format("{0:0.00}", input))) > 0 ?
            input.ToString() :
            string.Format("{0:0.00}", input);
    }