具有N个小数位数的Double.ToString
我知道如果我们想要将一个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()); }