none
Valorizar Expresiones RRS feed

  • Pregunta

  • Amigos, en un programa ocurre lo siguiente:

    1. El programa contiene cinco variables decimales cuyos valores se determinan dentro del programa (x01=100.10, x02=50.50, x03=40.00, x04=25.35 y x05=10.00).
    2. El programa solicita al usuario una expresión en base a esas cinco variables. Esta es una expresión que cada usuario ingresa y por tanto puede tomar cualquier forma, dependiendo de lo que usuario exprese en su registro. Por ejemplo, un usuario podría ingresar y pedir valorizar : (x01+x02+x03+x04-x05). Otro usuario podría ingresar: (2x01+x02-x05). Otro usuario podría solicitar: (x01-2x02+x03+x04). Otro usuario podría solicitar (x01*x02+X03*x04-5/7*x05).  Y así, estas expresiones dependen de la solicitud de cada usuario según la expresión que consignen.

    No encuentro la forma de poder valorizar estas expresiones a través de C#, donde, como mencioné anteriormen, la expresión no se conoce hasta que el usuario lo consigna en plena ejecución del programa. He intentado descomponer usando el método String con Split pero no logro poder rearmar la expresión genérica para lograr valorizar o determinar el valor numérico de las expresiones.

    viernes, 28 de agosto de 2020 16:49

Respuestas

Todas las respuestas

  • hola

    Son expresiones matematicas que podrias parsear con una libreria

    Eval-Expression.NET

    Eval.net

    Math-Expression-Evaluator

    librerias hay varias, tendrias que ir probando cual se adapta mejor

    como veras todos parsean una formaula como string pudiendo usar variables para tomar los valores

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta EricRRModerator sábado, 29 de agosto de 2020 0:24
    viernes, 28 de agosto de 2020 17:22
  • Hola Raul Caballero, 

      

    ¿Alguna novedad sobre la consulta realizada? 

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN.  

    Eric Ruiz

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    viernes, 28 de agosto de 2020 19:08
    Moderador