Как конвертировать Console.ReadLine (), чтобы удвоить в простом калькуляторе? C# Проблема с исключением - PullRequest
0 голосов
/ 24 февраля 2020

Я использовал double.Parse и Convert.ToDouble и получил ту же ошибку

System.FormatException: входная строка была в неправильном формате.

Когда я напишите в консоли 10.2 или любое другое двойное число.

Я учился на уроке и следовал ему шаг за шагом, но не знаю, как это решить.

Также я использую Visual Studio.

Console.WriteLine("Enter a number: ");
double num1 = double.Parse(Console.ReadLine());

Console.Write("Enter operator: ");
string op = Console.ReadLine();

Console.WriteLine("Enter a number: ");
double num2 = double.Parse(Console.ReadLine());

if (op == "+")
{
    Console.Write(num1 + num2);
}
else if (op == "-")
{
    Console.WriteLine(num1 - num2);
}
else if (op == "/")
{
    Console.WriteLine(num1 / num2);
}
else if (op == "*")
{
    Console.WriteLine(num1 * num2);
}
else
{
    Console.WriteLine("Invalid Operator");
}

1 Ответ

0 голосов
/ 24 февраля 2020

Возможно, проблема в вашем культурном окружении. В некоторых странах используется ., в других - ,

try:

double num2 = double.Parse(Console.ReadLine(), NumberStyles.Any, CultureInfo.InvariantCulture);

или устанавливается разделитель следующим образом:

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.NumberDecimalSeparator = ".";
double num2 = DateTime.Parse(Console.ReadLine(), culture);
...