public double Calculation(string str)
        {
            var postfixNotation = notation.Convert2PostfixNotation(str.Replace('.', ','));
            var values          = new Stack <double>();

            foreach (var el in postfixNotation)
            {
                double resultPars;

                values.Push(double.TryParse(el, out resultPars) ? resultPars : el.ApplyTo(values));
            }

            if (values.Count > 1)
            {
                throw new Exception("Expression is not valid!");
            }

            return(values.Pop());
        }