C#&.NET 6控制台程序怎么限制输入的字符只能是数字不能输入别的呢?
2.43K 次浏览
比如有如下的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();//通过等待用户输入,让程序界面停留
}
}
}