首页 / 问答 / C#&.NET 6控制台程序怎么限制输入的字符只能是数字不能输入别的呢?

C#&.NET 6控制台程序怎么限制输入的字符只能是数字不能输入别的呢?

0

比如有如下的C#&.NET 6控制台应用程序,应该如何限制用户输入的字符只能是数字不能输入别的呢?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 角度格式转换
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;//改变控制台颜色
            Console.WriteLine("本程序为度分秒-弧度(DMS-RAD)转换程序");
            Console.WriteLine("请输入度分秒值:DDMMSSS");
            string DMS = Console.ReadLine();//接受用户输入的原始数据
            double temp = double.Parse(DMS);//将用户输入数据转换为双精度浮点型数据,以便计算
            double DD, MM, SS;//定义变量,用于存储度、分、秒值
            DD = Math.Floor(temp);//通过取整函数得到度值
            if (DD > 360 || DD < 0)//限制度的范围
            {
                Console.WriteLine("数据错误");
                Console.ReadLine();//通过等待用户输入,让程序界面停留
                return;
            }
            MM = Math.Floor((temp - DD) * 100); //得到分值
            if (MM > 60 || MM < 0) //限制分的范围
            {
                Console.WriteLine("数据错误");
                Console.ReadLine();//通过等待用户输入,让程序界面停留
                return;
            }
            SS = (temp * 100 - Math.Floor(temp * 100)) * 100;//得到秒值
            if (SS > 60 || SS < 0) //限制秒的范围
            {
                Console.WriteLine("数据错误");
                Console.ReadLine();//通过等待用户输入,让程序界面停留
                return;
            }
            temp = DD + MM / 60 + SS / 3600;//得出十进制度格式数据
            double rad = temp * Math.PI / 180;//计算得出弧度制
            Console.ForegroundColor = ConsoleColor.Blue;//改变控制台颜色用于区分结果数据
            Console.WriteLine("计算出的弧度值为{0:f8}", rad);//f8表示保留8位小数
            Console.ReadLine();//通过等待用户输入,让程序界面停留
        }
    }
}
回复 [×]
提交评论
请输入评论内容

1 个回答

  • 0

    先看运行效果:

    封装一个只能在控制台应用程序中输入数字的方法,如下:

    完整的示例代码如下:

    我来回答