Подтвердить что ты не робот

Double.ToString с N числом десятичных мест

Я знаю, что если мы хотим отобразить double как двухзначную цифру, нужно просто использовать

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

Но как это расширить до N десятичных мест, где N определяется пользователем?

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

Ответ 1

Используйте "Nx" для x десятичных цифр.

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

Ответ 2

Я бы использовал это:

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