C#, konwersja string na double (liczby z operatorami arytm.)

0

Witam.
Mam taki kod:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Liczba: ");
            string s = Console.ReadLine();
            double d;
            try
            {
                d = double.Parse(s);
            }
            catch
            {
                Console.WriteLine("Blad");
            }
            Console.ReadKey(true);
        }
    }
}

Chciałbym żeby możliwa była konwersja łańcuchów typu "7+2", "12-7,2" itp. żeby przypisać typom double takie wartości.
Jak to zrobić? Bo gdy wpiszę właśnie coś takiego to zgłaszany jest wyjątek. :-(

0

Potrzebujesz parsera wyrażeń matematycznych:
http://www.google.pl/search?q=C%23+math+expression+parser

Jednak jeśli ma to być samo sumowanie bez nawiasów to własnoręcznie coś skrobnij. Trzeba by:

  1. usunąć białe znaki z łańcucha
  2. rozdzielić łańcuch względem znaków + i - (zapamiętać gdzie plus a gdzie minus)
  3. zamienić rozdzielone kawałki na liczby
  4. zsumować liczby zgodnie ze znakami + i -
0

Wczytaj łańcuch, znajdź w nim znak działania, wyodrębnij obie liczby, w zależności od znaku wykonaj odpowiednie działanie.

0

No właśnie, że bardziej przydałby się parser, bo to nie będą tylko takie proste działania.
Wielkie dzięki za pomoc :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1