|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 basilizak 于 2022-9-7 14:42 编辑
我想将表达式字符串计算出它的值,找了好几个,都不能按照C#的语法计算出结果,用ScriptControl算最好的一个,不过它也有问题,看下列代码:
ScriptControl sc=new ScriptControl();
sc.Language = "JavaScript";
Console.WriteLine(sc.Eval("2 * (5 - (5 / 2 / 7 % 6) % 8 * 7 % 10) * 8 * 4 + 3"));
它出来的结果是163,正确的结果是323。
我想来想去,除非它最前面的2没有乘,那就是163,但是为什么会出现这样的结果。
各位有没有好的源代码或者组件或者方法推荐,我用了集中方法,最不好搞的就是%运算符,比如说datatable的方法,%运算符和C#是不一样的,
计算结果也不一样。还有就是无法算乘方,比如:(Math.Pow(9,6)/(6%(5%5+6/7+3)-((4%5%6%2+3)%4/5-3)%6-7)%4%9)+10*(4*4%9+6/3)*9
上面的方法算最好的了,只需要把Pow换成pow就能算了,其他的基本算不了乘方。
|
|