怎样用FLASH计算这个字符串形式的数学表达式?

dongcat111 2005-09-09 10:28:31
我需要计算一个字符串表达式,如expression="3+4*5"。假如是expression=3+4*5则可以顺利进行四则运算,不知道用字符串得到的表达式怎么进行计算呢?有没有简单的办法?
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
miaoliujun 2005-09-09
  • 打赏
  • 举报
回复
思路就是先按+分各个模块,每个模块再分减,接下来分别是乘和除
这样就是先计算乘和除,然后是加和减,正巧符合运算规则

如果有括号,你可以自己再做处理。
miaoliujun 2005-09-09
  • 打赏
  • 举报
回复
如果没有括号其实还是很简单的
function main(expression){
if(expression.index("+")!=-1){
var a1 = expression.split("+);
var result = 0;
for(var i=0;i<ai.length;i++){
result +=doMinus(a1[i]);
}
return result;
}else{
return doMinus(expression);
}
}
function doMinus(expression){
if(expression.index("-")!=-1){
var a1 = expression.split("-");
var result = doMuilt(a1[0]);
for(var i=1;i<a1.length;i++){
result- =doMuilt(a1[i]);
}
return result;
}else{
return doMuilt(expression);
}
}
function doMuilt(expression){
if(expression.index("*")!=-1){
var a1 = expression.split("*");
var result = 1;
for(var i=0;i<a1.length;i++){
result* =doDivid(a1[i]);
}
return result;
}else{
return doDivid(expression);
}
}
function doDivid(expression){
if(expression.index("/")!=-1){
var a1 = expression.split("/");
var result = a1[0];
for(var i=1;i<a1.length;i++){
result/ =a1[i];
}
return result;
}else{
return expression;
}
}
上面的是我随手写出来的,没有测试,你自己可以测试测试

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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