计算器,按照运算法则运算
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
点击浏览该文件 这是我做的一个,模仿Windows自带的计算器,支持快捷键,进制转换。尤其是按运算法则运算(到现在,我也没见过这么好的Flash计算器,支持一下啦! 我的计算器类: dynamic class Counter { //输出的文字,是格式化了的,例如分组,科学记数法... var output:String = "0"; //计算的文字,纯数字 var value:String = "0"; //是否分组 var grouping:Boolean = false; //监听器用 var _listeners:Array = []; //统计用 var data:Array = undefined; var datas:Object = {Ave:undefined, Ave2:undefined, Sum:undefined, Sum2:undefined, S:undefined, S2:undefined}; //算式储存 private var count:Array = []; //是否重新输入数字 private var isnew:Boolean = false; //储存数字 private var remember:Number = undefined; //暂时数字储存 private var nrem:String; //暂时运算符储存 private var nsign:String = undefined; //数制 private var systems:Number = 10; //单位 private var units:Number = 0; //括号中的 private var inbracket:Array = []; //构造函数 function Counter(key:Boolean) { if (key == undefined) { key = true; } if (key) { Key.addListener(this); } } //清除键 function C() { //清除所有数据 value = "0"; count = []; isnew = true; nsign = undefined; CounterMessage("C"); } //清空键 function CE() { value = "0"; isnew = true; CounterMessage("CE"); } //BackSpace function BackSpace() { value = value.slice(0, -1); if (value.length == 0) { value = "0"; } CounterMessage("BackSpace"); } //输入数字 function numbers(n) { n = n.toString().toUpperCase(); if (isnew) { value = "0"; } isnew = false; //判断输入的数字是否在数制范围内 if (systems<=10) { if (n.charCodeAt(0)<=47+systems) { if (value != "0") { value += n; } else { value = n; } CounterMessage(n); } } else if (systems>10 && systems<=36) { if (n.charCodeAt(0)<=54+systems) { if (value != "0") { value += n; } else { value = n; } CounterMessage(n); } } } //小数点 function dot() { if (systems == 10) { if (isnew) { value = output="0"; } isnew = false; if (value.indexOf(".") == -1) { value += "."; } CounterMessage("."); } } //正负号 function minuss() { if (systems == 10) { if (isnew) { value = "0"; } isnew = false; if (value != "0") { if (value.indexOf("-") == -1) { value = "-"+value; } else { value = value.substr(1); } } CounterMessage("+/-"); } } //+ function plus() { duseless(); if (count[count.length-1] == "+" || count[count.length-1] == "-" || count[count.length-1] == "%") { if (systems == 10) { count.push(value); } else { count.push(parseInt(value, systems).toString()); } } else if (count.length == 0) { if (systems == 10) { count.push(value); } else { count.push(parseInt(value, systems).toString()); } } else { //if(count[count.length-1].substr(-1,1)=="*"||count[count.l |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于计算器,按照运算法则运算的所有评论