none
Realizar operación matemática en un string C# RRS feed

  • Pregunta

  • Buenas amigos quisiera saber si alguien me ayuda a resolver el siguiente problema, lo que pasa es que tengo una operación matemática en  un string es decir: "25.6 + 258 + 456", quisiera saber si alguien sabe si hay algún método de framework que resuelva o convierta esta cadena en algo que pueda resolverse haciendo la suma de los valores que se encuentran en la cadena.
    lunes, 5 de octubre de 2015 23:15

Respuestas

Todas las respuestas

  • Échale un vistazo a este artículo:

    .NET Framework. Evaluar expresiones aritméticas


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta Jesús Espinoza miércoles, 7 de octubre de 2015 19:40
    martes, 6 de octubre de 2015 3:59
  • Hay varias opciones. Una es invocar un intérprete de javascript si es que en la máquina está instalado, como se sugiere en el artículo que te han enlazado en la respuesta anterior. Otra es compilar la expresión usando el compilador de C# o el de VB, y luego invocar mediante reflexión el código que acabas de compilar:

    https://msdn.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider(v=vs.110).aspx

    Aunque el ejemplo del enlace anterior compila un fichero en disco, también se puede compilar directamente una cadena en memoria usando las sobrecargas de los métodos provistos.

    Una tercera opción es escribir tu propio intérprete o compilador de expresiones. Lleva bastante código, pero es un ejercicio interesante y tiene la ventaja de que puedes diseñar la sintaxis de las expresiones a tu gusto. En este artículo que escribí hace tiempo tienes un ejemplo de cómo hacerlo:

    http://www.scribd.com/doc/23194492/Como-crear-un-interprete-de-expresiones-en-NET

    martes, 6 de octubre de 2015 5:58
  • Amigo, me marca una advertencia de que  VsaEngine engine = VsaEngine.CreateEngine(); es obsoleto, y en ocasiones si funciona y en ocasiones no, no se si me pudieras apoyar un poco en eso.
    miércoles, 7 de octubre de 2015 18:49
  • Sí, está marcado como obsoleto. Supongo que desaparecerá en el futuro aunque te debería funcionar sin problemas.

    ¿En qué casos no funciona? Ten en cuenta que la sintaxis de las operaciones debe ser la de JavaScript.

    Ésta es una forma rápida de implementar un evaluador de expresiones simple (y con sus limitaciones). Si quieres hacer algo más completo deberías ir a la solución que te proponía Alberto de crear tu propio evaluador de expresiones o utilizar alguna librería de terceros.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    miércoles, 7 de octubre de 2015 19:09
  • gracias amigo, tenia un pequeñisimo error de sintaxis, por ello que me funcionaba de forma intermitente, y si, tomare en cuenta la opción que me da Alberto, pero para solucionar de momento si me servirá lo que tu me pasaste.
    miércoles, 7 de octubre de 2015 19:39