Hola a menuda pasa que queremos evaluar expresiones matemáticas
si bien es cierto .NET ya contiene funciones integradas que nos permiten
realizar cálculos Matemáticos. Pero les pongo un escenario que me paso y bueno
mi solución fue utilizar JEP:
Escenario:
Se necesita evaluar una fórmula que está dentro de una
cadena ejemplo “2X+8+log(123)” donde x es una variable que obtendrá un valor dinámicamente.
Al ser muchas fórmulas se necesita que estas fórmulas se almacenen en una BD
SQL por lo que tendré n Formulas. Este
escenario se aplica para un Laboratorio XXX dedicado a analizar muestras.
Con .NET seria complejo intentar analizar una cadena y
evaluarla como una formula, con Jep esto
es posible.
Después de eso crearemos una App Windows y Diseñaremos el
Siguiente Formulario
Y Como ya tenemos la Dll la agregamos a nuestro proyecto
como referencia
Click Derecho en Nuestro Proyecto>>>Agregar
Referencia
Jep.NET es Sensible a las Mayusculas y Minusculas asi que hay que tener cuidado al agregar variable ya que para Jep.net una X en mayuscula es diferente de una x en minuscula, quiza para nosotros sea lo mismo pero cuidado con esto lo recomendable seria mandar toda la expresion convertida en minuscula.
Importamos
el NameSpace
Imports SingularSys.Jep
Imports SingularSys.Jep.Types
1.- Operaciones Simples
Aqui realizaremos operaciones simples tales como (Sumar, restar, etc)
ya que nosotros evaluaremos una cedena el usuario sera quien ingrese la expresion a evaluar, claro que por supuesto validando los caracteres permitidos. Para realizar todo esto solo hara falta un TextBox y su Evento KeyPress y cuando presione ENTER ejecutaremos la expresion ingresada.
2.- Formulas Matematicas
Aqui aplicaremos formulas cada variable debe tener un valor de lo contrario nos podria botar error. Jep detecta las variables en su metodo Parse pero somos nostros quien le debemos asignar un valor a esa variable en este caso nosotros ya definimos por anticipado las variables y le damos un valor.
3.- Funciones. aplicaremos el uso de funciones Jep a modo de ejemplo solo eh listado algunas de las muchas funciones de Jep, estas funciones las eh listado en un ListBox y al momento de Hacer Click En agregar se Mustra en el TextBox las funciones en su mayoria son en minuscula si desean obtener mas informacion acerca de las funciones disponibles pueden consultar
Funciones Jep.NET
Proyecto Desarrollado en VB 2010 Si desean el Codigo Fuente lo pueden descargar de Aqui.