计算器,按照运算法则运算
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
rn parseInt2(c[0], 10, systems); } else if (c[1] == "%") { c[0] = (Number(c[0])%evals(c[2])).toString(); c[1] = c[3]; c.length = 2; return parseInt2(c[0], 10, systems); } } } //根据运算符号运算 private function evals(n:String):Number { if (n.indexOf("^") == -1) { if (n.indexOf("*") == -1 && n.indexOf("/") == -1) { return Number(n); } else { var st:Number; var st2:String; var num:Number = Number(n.substr(0, (st=Math.min((n.indexOf("*") == -1) ? Infinity : n.indexOf("*"), (n.indexOf("/") == -1) ? Infinity : n.indexOf("/"))))); n = n.slice(st); while (n.length>0) { st2 = n.substr(0, 1); n = n.slice(1); var st = Math.min((n.indexOf("*") == -1) ? Infinity : n.indexOf("*"), (n.indexOf("/") == -1) ? Infinity : n.indexOf("/")); var mu = Number(n.substr(0, (st == Infinity) ? n.length : st)); if (st2 == "*") { num *= mu; n = n.slice((st == Infinity) ? 0 : st); } else if (st2 == "/") { num /= mu; n = n.slice((st == Infinity) ? 0 : st); } } return num; } } else { if (n.indexOf("*") == -1 && n.indexOf("/") == -1) { return evalPow(n); } else { var r = new Array(); var size = n.length; var c = 0; for (var i = 0; i<=size; ++i) { if (substring(n, i+1, 1) == "*" || substring(n, i+1, 1) == "/") { r.push(substring(n, c+1, i-c)); r.push(substring(n, i+1, 1)); c = i+1; } } if (c != i) { r.push(substring(n, c+1, i-c)); r.push(substring(n, i+1, 1)); } var num:Number = evalPow(r[0]); for (var j = 1; j num *= evalPow(r[j+1]); } else { num /= evalPow(r[j+1]); } } return num; } } } //计算x^y^z^... private function evalPow(n:String):Number { if (n.indexOf("^") == -1) { return Number(n); } else { var st:Number; var num:Number = Number(n.substr(0, (st=n.indexOf("^")))); n = n.slice(st+1); while (n.length>0) { var st = (n.indexOf("^") == -1) ? n.length : n.indexOf("^"); var mu = Number(n.substr(0, st)); n = n.slice(st+1); num = Math.pow(num, mu); } return num; } } //删除无用的符号 private function duseless() { if (value.substr(-1) == ".") { value = value.slice(0, -1); } } //改变数制 private function changeS(n:Number) { value = parseInt2(value, systems, n); systems = n; CounterMessage("SystemChange"); isnew = true; } //进制转化换 function parseInt2(s:String, from:Number, to:Number):String { if (from == 10) { return Number(s).toString(to).toUpperCase(); } else { return parseInt(s, from).toString(to).toUpperCase(); } } //角度转化为弧度 function dtr(angle:Number) { return angle*(Math.PI/180); } //弧度转化为角度 function rtd(angle:Number) { return angle*(180/Math.PI); } //数字分组 private function group() { output = value; if (grouping) { if (output.indexOf("e") == -1) { if (systems == 10) { var sign = ","; var n:Numb |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于计算器,按照运算法则运算的所有评论