У меня есть кодРазрешить '.' (Точка) только ввод номера в консоли
string _val = "";
Console.Write("Enter your value: ");
ConsoleKeyInfo key;
do
{
key = Console.ReadKey(true);
if (key.Key != ConsoleKey.Backspace)
{
double val = 0;
bool _x = double.TryParse(key.KeyChar.ToString(), out val);
if (_x)
{
_val += key.KeyChar;
Console.Write(key.KeyChar);
}
}
else
{
if (key.Key == ConsoleKey.Backspace && _val.Length > 0)
{
_val = _val.Substring(0, (_val.Length - 1));
Console.Write("\b \b");
}
}
}
while (key.Key != ConsoleKey.Enter);
Console.WriteLine();
Console.WriteLine("The Value You entered is : " + _val);
, что позволяет только ввод номера. Но как я могу разрешить символ «.» (Точка), потому что я хочу работать с номерами с плавающей запятой?
В общем вы делаете такого рода странно. Вы получаете фактический ключ, который был нажат, но вместо этого вы можете просто использовать 'Console.ReadLine()' для чтения всех входных данных. Тогда у вас не будет проблем с чтением значений, например, 1049.4839 – evanmcdonnal
Но как я могу запретить письма в этом случае? –
@evanmcdonnal Похоже, он пытается отфильтровать вход пользователя. Подобно тому, как нельзя вводить буквы. – Steve