Возврат методом различных типов данных - C#
Формулировка задачи:
Здравствуйте,
ребята, как научить мой "калькулятор" понимать строку ввода типа "2+2" или к примеру "10/2" когда я ввожу в консоль, выдаётся ошибка. Код ниже:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _07Metods02
{
class Program
{
static double Add(double a, double b)
{
return a + b;
}
static double Sub(double a, double b)
{
return a - b;
}
static double Mul(double a, double b)
{
return a * b;
}
static double Div(double a, double b)
{
return a / b;
}
static void Main(string[] args)
{
double a, b;
char x;
Console.WriteLine("Пожалуста введите 2 числа");
a = double.Parse(Console.ReadLine());
x = char.Parse(Console.ReadLine());
b = double.Parse(Console.ReadLine());
if (b == 0)
{
Console.WriteLine("Ошибка! На ноль делить нельзя!");
}
switch (x)
{
case '+':
Console.WriteLine("Сумма этих двух чисел {0:0.00}", Add(a, b));
break;
case '-':
Console.WriteLine("Разница этих двух чисел {0:0.00}", Sub(a, b));
break;
case '*':
Console.WriteLine("Произведение этих двух чисел {0:0.00}", Mul(a, b));
break;
case '/':
Console.WriteLine("Деление этих двух чисел {0:0.00}", Div(a, b));
break;
}
Console.ReadKey();
}
}
}Решение задачи: «Возврат методом различных типов данных»
textual
Листинг программы
double a, b;
char x = ' ';
string str = Console.ReadLine();
foreach (var ch in str) { if (!Char.IsDigit(ch)) { x=ch; } }
string[] digits = str.Split(new char[1]{x}, StringSplitOptions.RemoveEmptyEntries);
a = Convert.ToInt32(digits[0]);
b = Convert.ToInt32(digits[1]);