Извършване на изчисление според BODMAS в C# [затворено]

Момчета, имам изчисление, което е изградено от потребител в текстово поле. Накратко, той определя формата, който иска, и стойностите се предават по-късно (след някои заявки към базата данни).

eg. (X + Y) * 55

или той също може да бъде построен като

(X - 100) * 100

Има ли някакъв начин това да се изчисли със c#?

ЗАБЕЛЕЖКА: X и Y се извличат от база данни.


person Anoushka Seechurn    schedule 26.11.2013    source източник
comment
Създавали ли сте някога анализатор на низове/скриптове?   -  person rhughes    schedule 26.11.2013
comment
@rhughes , Не, нямам.   -  person Anoushka Seechurn    schedule 26.11.2013
comment
Това основно ще доведе до създаване на малък анализатор на скриптове. В зависимост от вашето време можете или да разгледате предварително изграден такъв като Lua, или да създадете свой собствен. как е времето ти   -  person rhughes    schedule 26.11.2013
comment
Имам 26 часа за това.   -  person Anoushka Seechurn    schedule 26.11.2013
comment
възможен дубликат на Оценяване на математически израз в c#   -  person Rowland Shaw    schedule 26.11.2013
comment
Но дубликатът няма приет отговор.   -  person M-WaJeEh    schedule 26.11.2013


Отговори (2)


разгледайте http://NCalc.Codeplex.com

това е лесна за използване и разширяема машина за изчисления за C#

Пример за това как да използвате е:

 Expression e = new Expression("2 + 3 * 5");
  Debug.Assert(17 == e.Evaluate());
person GreyCloud    schedule 26.11.2013
comment
Assert се използва за проверка (ако не греша) дали оценката е вярна или невярна. Нямам нужда от това, имам нужда от начин действително да оценя израза. - person Anoushka Seechurn; 26.11.2013
comment
разбира се, така че просто извикайте string results = e.Evaluate().ToString() - person GreyCloud; 26.11.2013
comment
или ако имате нужда от двойно използвайте двоен резултат = Convert.ToDouble(e.Evaluate()); - person GreyCloud; 26.11.2013

Без да го правите вместо вас, можете или да погледнете тук за информация относно използването на Lua в C#.

За друг начин можете да създадете система като тази, която създава действителен калкулатор. Можете да го разширите, като добавите бутони ( и ), за да ги изчислите първо.

person rhughes    schedule 26.11.2013