带有变量的公式,在ASP.NET中用C#怎么解析啊?谢谢哦

c2008200613 2010-07-22 09:49:29
带有变量的公式,在ASP.NET中用C#怎么解析啊?谢谢哦
...全文
154 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
c2008200613 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wuyq11 的回复:]
datatable.compute
http://www.codeproject.com/KB/recipes/rwformulaparser.aspx
结合matlab
[/Quote]这个我也下了,不好用啊,谢谢诶
c2008200613 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 peter200694013 的回复:]
Console.WriteLine(Convert.ToInt32(new DataTable().Compute("1 + 2 * 4","")));
[/Quote]你好,VS2008里做的,要不我给你发过去看看,给个建议,谢谢,你的邮箱?
zhaowanru19 2010-07-22
  • 打赏
  • 举报
回复
定义方法,输入值作为参数。。
方法内进行结合math的方法进行就算。。
Peter200694013 2010-07-22
  • 打赏
  • 举报
回复
Console.WriteLine(Convert.ToInt32(new DataTable().Compute("1 + 2 * 4","")));
wuyq11 2010-07-22
  • 打赏
  • 举报
回复
Peter200694013 2010-07-22
  • 打赏
  • 举报
回复
你是想计算一个表达式的值?
c2008200613 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dodducs 的回复:]
没写过,但是可以有一个大概的逻辑,,按照算数的顺序来做
比如 () 优先级最高,,那你可以按照 一定的规律把他的公式拆分计算
比如 1 + ( 2 - 3 ) * 4
这样你把 2 - 3 拿出来 然后先计算 得到 -1
怎么算不用说吧,,判断符号 - 号就 - + 号就+ 等等

然后找 下一个要计算的 * / 优先级比 + - 高 所以算 -1 * 4
最后算 1 + (-4) ……
[/Quote]没有变量的,想简单的四则混合运算我已经实现了,现在就是有变量的公式不能实现计算,急啊???
dodducs 2010-07-22
  • 打赏
  • 举报
回复
没写过,但是可以有一个大概的逻辑,,按照算数的顺序来做
比如 () 优先级最高,,那你可以按照 一定的规律把他的公式拆分计算
比如 1 + ( 2 - 3 ) * 4
这样你把 2 - 3 拿出来 然后先计算 得到 -1
怎么算不用说吧,,判断符号 - 号就 - + 号就+ 等等

然后找 下一个要计算的 * / 优先级比 + - 高 所以算 -1 * 4
最后算 1 + (-4) = -3 完毕
c2008200613 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 peter200694013 的回复:]
感觉还是定义方法好...

可以定义一个static工具类,其中的static方法则对应的你的公式
[/Quote]谢谢诶,这样估计不行,公式太多了
mayonglong 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 c2008200613 的回复:]
引用 3 楼 peter200694013 的回复:
把公式定义成方法就可以吧

比如
public Int32 F(Int32 m, Int32 a)
{
return m * a;
}

然后在输入 m a之后,调用方法...
主要是公式太多了,我想解析后直接调用,每个公式都可以用啊
[/Quote]

可以重载
不过也需要你定义啊~
Peter200694013 2010-07-22
  • 打赏
  • 举报
回复
感觉还是定义方法好...

可以定义一个static工具类,其中的static方法则对应的你的公式
mayonglong 2010-07-22
  • 打赏
  • 举报
回复
定义方法,传入变量参数~
c2008200613 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 peter200694013 的回复:]
把公式定义成方法就可以吧

比如
public Int32 F(Int32 m, Int32 a)
{
return m * a;
}

然后在输入 m a之后,调用方法...
[/Quote]主要是公式太多了,我想解析后直接调用,每个公式都可以用啊
Peter200694013 2010-07-22
  • 打赏
  • 举报
回复
把公式定义成方法就可以吧

比如
public Int32 F(Int32 m, Int32 a)
{
return m * a;
}

然后在输入 m a之后,调用方法...
c2008200613 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 peter200694013 的回复:]
给个例子...
[/Quote]比如说牛顿第二定律:

F=m*a
当输入参数m和a的值时,得到F的值;

谢谢诶
Peter200694013 2010-07-22
  • 打赏
  • 举报
回复
给个例子...
c2008200613 2010-07-22
  • 打赏
  • 举报
回复
还有更好的方法没?各位XDJM?

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧