织梦CMS - 轻松建站从此开始!

欧博ABG官网-欧博官方网址-会员登入

Stack OverfDG游戏low en español

时间:2025-07-18 11:52来源: 作者:admin 点击: 2 次
Desarrollar una calculadora donde ingresas como texto la operación no es tan trivial, se requiere desglosar la operación en sub-operaciones en un árbo

Desarrollar una calculadora donde ingresas como texto la operación no es tan trivial, se requiere desglosar la operación en sub-operaciones en un árbol de expresiones.

Tu estas aprovechando la función compute del DataTable que lo hace por ti, pero estas expresiones deben seguir reglas, no existe la multiplicación implícita, tal como en mismo C# tampoco existe.

int resultado = 2(3+3); //Error

Entonces me parece que la única solución posible es agregar ese * que falta, donde puedes usar un replace, para esto deberás buscar los posibles problemas, por ejemplo:

Los número seguido de paréntesis: 0(,1(,2(...9(

2 paréntesis juntos, de cierre y apertura en ese orden: )(

Entonces creas una función:

private string AgregarMulti(string expresion) { return expresion .Replace(" ", "") //opcional: quitamos los espacios .Replace("0(", "0*(") .Replace("1(", "1*(") .Replace("2(", "2*(") .Replace("3(", "3*(") .Replace("4(", "4*(") .Replace("5(", "5*(") .Replace("6(", "6*(") .Replace("7(", "7*(") .Replace("8(", "8*(") .Replace("9(", "9*(") .Replace(")(", ")*("); }

Y luego la llamas

dt.Compute(AgregarMulti(expresion),"")

Otra forma sería usar expresiones regulares para buscar los casos.

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-07-22 06:07 最后登录:2025-07-22 06:07
栏目列表
推荐内容