Ответ 1
Используйте "Nx" для x десятичных цифр.
public void DisplayNDecimal(double dbValue, int nDecimal)
{
Console.WriteLine(dbValue.ToString("N" + nDecimal));
}
Я знаю, что если мы хотим отобразить double
как двухзначную цифру, нужно просто использовать
public void DisplayTwoDecimal(double dbValue)
{
Console.WriteLine(dbValue.ToString("0.00"));
}
Но как это расширить до N
десятичных мест, где N
определяется пользователем?
public void DisplayNDecimal(double dbValue, int nDecimal)
{
// how to display
}
Используйте "Nx" для x десятичных цифр.
public void DisplayNDecimal(double dbValue, int nDecimal)
{
Console.WriteLine(dbValue.ToString("N" + nDecimal));
}
Я бы использовал это:
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());
}