用最小十进制位数格式化双精度类型

本文关键字:格式化 双精度 类型 十进制 | 更新日期: 2023-09-27 18:08:37

我需要格式化double类型,使其至少有两个十进制数字,但不限制十进制数字的最大数目:

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

我怎样才能实现它?

用最小十进制位数格式化双精度类型

您可以使用0格式指定符来指定非可选数字,使用#格式指定符来指定可选数字:

n.ToString("0.00###")

这个例子给你最多五个十进制数字,你可以根据需要添加更多的#位置

试试这个

    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);
    }

ToString("0.00#")这样的东西应该可以工作

在这种情况下,它将是最大到3位小数,所以添加哈希值需要