具有N个小数位数的Double.ToString

时间:2010-06-17 07:45:14

标签: c#

我知道如果我们想要将double显示为两位十进制数字,则必须使用

public void DisplayTwoDecimal(double dbValue)
{
  Console.WriteLine(dbValue.ToString("0.00"));
}

但是如何将此扩展到N小数位,其中N由用户决定?

 public void DisplayNDecimal(double dbValue, int nDecimal)
    {
     // how to display
    }

2 个答案:

答案 0 :(得分:54)

将“Nx”用于x十进制数字。

 public void DisplayNDecimal(double dbValue, int nDecimal)
 {
   Console.WriteLine(dbValue.ToString("N" + nDecimal));
 }

答案 1 :(得分:-3)

我会用这个:

public string DisplayNDecimal(double dbValue, int nDecimal)
{
    string decimalPoints = "0";
    if (nDecimal > 0)
    {
        decimalPoints += ".";
        for (int i = 0; i < nDecimal; i++)
            decimalPoints += "0";
    }
    return dbValue.ToString(decimalPoints);
}

:)

这是StringBuilder(尽管可能效率不高,肯定需要更多资源)

public string DisplayNDecimal(double dbValue, int nDecimal)
{
    StringBuilder decimalPoints = new StringBuilder("0");
    if (nDecimal > 0)
    {
        decimalPoints.Append(".");
        for (int i = 0; i < nDecimal; i++)
            decimalPoints.Append("0");
    }
    return dbValue.ToString(decimalPoints.ToString());
}