Console.Write("输入您要精确的小数:"); string strA = Console.ReadLine(); Console.Write("您要精确到几位小数:"); int k = int.Parse(Console.ReadLine()); double n = Convert.ToDouble(strA); int i = strA.IndexOf(".");//确定小数索引位置 string strB = string.Empty; try { strB = strA.Substring(i + k + 1, 1);//截取精确小数的后一位 int m = int.Parse(strB); string strC = strA.Substring(i + 1, k);//截取要保留的小数部分 double j = Math.Floor(n); strA = Convert.ToString(j);//提取其整数部分 strA = strA + "." + strC;//整数加要精确的小数部分 double q = Convert.ToDouble(strA); Console.Write("精确后的数为:"); if (m >= 5) Console.Write(q + Math.Pow(0.1, k));//五入 else Console.Write(q); } catch { Console.WriteLine("精确的小数位要大于您输入数的小数数!"); } Console.ReadLine();