Forex_Strategy_Builder.Calculator.ParseInput C# (CSharp) Method

ParseInput() private method

Does the job
private ParseInput ( string input ) : void
input string
return void
        void ParseInput(string input)
        {
            string dcmlSeparator   = System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator;
            input = input.Replace(".", dcmlSeparator);
            input = input.Replace(",", dcmlSeparator);
            Match  match  = expression.Match(input);
            double result = double.NaN;

            if (match.Success)
            {
                double arg1 = double.Parse(match.Groups["arg1"].Value);
                double arg2 = double.Parse(match.Groups["arg2"].Value);
                string optr = match.Groups["operator"].Value;
                string last = match.Groups["last"].Value;

                // Addition
                if (optr == "+")
                    result = arg1 + arg2;

                // Subtraction
                else if (optr == "-")
                    result = arg1 - arg2;

                // Multiplication
                else if (optr == "*" && last != "%")
                    result = arg1 * arg2;

                // Division
                else if (optr == @"/")
                {
                    if (arg2 != 0) result = arg1 / arg2;
                    else if (arg1 > 0) result = double.PositiveInfinity;
                    else if (arg1 < 0) result = double.NegativeInfinity;
                }

                // Percent
                else if (optr == "*" && last == "%")
                {
                    result = arg1 * arg2 / 100;
                    last = "=";
                }

                // Power
                else if (optr == "^")
                    result = Math.Pow(arg1, arg2);

                if (Regex.IsMatch(last, @"[\+\-\*/\^]"))
                    last = " " + last + " ";
                else
                    last = " ";

                tbxInput.Clear();
                tbxInput.AppendText(result.ToString() + last);
            }

            return;
        }