用计算机做logistic函数,2019-02-28 :计算器使用逻辑进行编程(未使用eval函数)...

简易计算器

*{

margin: 0px;

padding: 0px;

}

.box{

position: absolute;

top: 50px;

left: 50%;

margin-left: -100px;

}

#result{

height: 50px;

width:200px;

box-sizing: border-box;

}

#keys{

display: flex;

flex-wrap: wrap;

max-width: 200px;

}

#keys li{

display: inline-block;

list-style: none;

height: 50px;

width: 50px;

border: 1px #111 solid;

box-sizing: border-box;

text-align: center;

line-height: 50px;

}

#keys li:hover{

cursor: pointer;

}

  • 1
  • 2
  • 3
  • +
  • 4
  • 5
  • 6
  • -
  • 7
  • 8
  • 9
  • *
  • 0
  • /
  • AC
  • DEL
  • .
  • =

var input = document.getElementById("result");

var num1,num2,result;

for (var i = 0; i < 18; i ++) {

document.getElementsByTagName("li")[i].onclick = start;

}

function start(){

switch(this.innerHTML){

case "+":

case "-":

case "*":

case "/":jie(this.innerHTML);break;

case "=": reslutIs();break;

case "AC": ac();break;

case "DEL": del();break;

default : inputText(this.innerHTML);break;

}

input.value = result;

}

function ac(){

input.value = "";

}

function del(){

input.value = input.value.substring(0,input.value.length - 1);

}

/*

* 输入函数

* 报错:出现undefined

*

*/

function inputText(obj){

if (input.value == "0") {

input.value = "";

}

input.value += obj;

}

/*

* 等于函数

* 思路:对式子进行判断,并计算结果

* 因为式子最多一次运算,也就是最多进行计算一次,有两个数字进行计算

* 可以直接使用parseFloat(),提取第一个数字

* 将提取的第一个数字转为字符串保存在另一个变量里,检测字符串的长度,从而确定运算符的位置

* 最后提取第二个数字,转为数字类型

* 根据判断的运算符进行相应的运算即可

*/

function reslutIs(){

num1 = parseFloat(input.value);

var index;

index = "" + num1;

index = index.length;

if ( input.value.indexOf("+") == 0) {

index ++;

}

//提取运算符,判断是什么运算

operator = input.value[index];

//提取最后的数字

num2 = parseFloat(input.value.substring(index + 1, input.value.length));

switch(operator) {

case "+": result = num1 + num2;break;

case "-": result = num1 - num2;break;

case "*": result = num1 * num2;break;

case "/": result = num1 / num2;break;

}

}

/*

* 加减乘除函数

* 思路:首先判断目前的式子是否可以运算,可以的话先使用resultIs()进行运算,最后添加相应符号即可

*

*/

function jie(opr){

/* 此处粘贴resultIs()处的代码,判断取得的num2是不是NaN */

num1 = parseFloat(input.value);

var index;

index = "" + num1;

index = index.length;

if ( input.value.indexOf("+") == 0) {

index ++;

}

//提取运算符,判断是什么运算

operator = input.value[index];

//提取最后的数字

num2 = parseFloat(input.value.substring(index + 1, input.value.length));

if ( isNaN(num2) || input.value.length == index ) {

inputText();

}else{

reslutIs();

}

switch(opr) {

case "+": result = result + "+";break;

case "-": result = result + "-";break;

case "*": result = result + "*";break;

case "/": result = result + "/";break;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值