快速业务通道

计算器,按照运算法则运算

作者 佚名技术 来源 服务器技术 浏览 发布时间 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 if (r[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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号