@artshelom

Как делать расчет по формулам?

У меня textbox куда вводится формула, а как сделать, чтобы в ней происходил расчет не знаю, как это можно сделать??
  • Вопрос задан
  • 293 просмотра
Решения вопроса 2
FoggyFinder
@FoggyFinder
Можно использовать готовые библиотеки.
Например, MathNet.Symbolics

Библиотека написана на F#, но вы можете использовать ее и в C# проекте:

Math-NET-Symbolics-with-C-VB-NET-and-C-CLI

Как видно из примера:

using MathNet.Symbolics;
using Expr = MathNet.Symbolics.SymbolicExpression;
...
Expr.Parse("1/(a*b");  // выбросит исключение
Expr.Parse("1/(a*b)").ToString(); // вернет строку "1/(a*b)"


API достаточно удобное.

С простыми функциями / формулами проблем быть не должно. Если возможностей будет не хватать или вы найдете баг - открывайте ишшью (на английском языке) или даже PR - мейнтейнер принимает их без проблем.

А я в свою очередь, как один из контрибуторов, буду рад ответить на возможные вопросы или помочь с реализацией функционала.

Есть и другие библиотеки, некоторые по возможностям превосходят MathNet.Symbolics, но так как я с ними не работал, то рекомендовать не могу.
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
Написать анализатор, который будет действовать как человек. Что там у нас первое - скобки. Значит ищем блоки те что в скобка и натравливаем на них анализатор снова. Далее выявляем блоки деления/умножения, считаем их, результат засовываем обратно. Затем делаем сложение/вычитание, ну и так далее.
П.С. кстати интересное задание.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
arxont
@arxont
C# программист
Посмотрите на https://github.com/pieterderycke/Jace
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы