<html>
<head>
<style>
 .short{height:50px;width:55px;float:left;}
</style>
</head>
<body>
<script>
var xianshi="";
var shuzi="";
var huanchun="";

//如果连续输入数字,则累加其值
function num(a){
  var pingmu=document.getElementById("pingmu");
  xianshi+=a;
  pingmu.value=xianshi;
  shuzi+=a
}

//如果缓存和数字为空,则第一个输入不能是符号
function fum(b){
  if(shuzi==""&&huanchun=="")return;   
  huanchun+=shuzi+b;
  shuzi="";
  xianshi="";
}

//求出缓存值,并清空其他值
function sum(){
  huanchun+=shuzi;
  var pingmu=document.getElementById("pingmu");
  huanchun=eval(huanchun);
  pingmu.value=huanchun;
  shuzi=""
  xianshi=""
}

//将屏幕上的值添加-号后,保存到缓存或者数字当中
function sign(){
  var pingmu=document.getElementById("pingmu")
  var value=pingmu.value;
  value="(-("+value+"))"
  value=eval(value)
  pingmu.value=value;
  if(shuzi=="")huanchun=value;
  else{shuzi=value;}
}

//倒数
function reciprocal(){
  var pingmu=document.getElementById("pingmu")
  var value=pingmu.value;
  value="1/"+value
  value=eval(value);
  pingmu.value=value;
  if(shuzi=="")huanchun=value;
  else{shuzi=value;}
}

//开方
function nsqrt(){
  var pingmu=document.getElementById("pingmu")
  var value=pingmu.value;
  value=eval(value);
  value=Math.sqrt(value);
  pingmu.value=value;
  if(shuzi=="")huanchun=value;
  else{shuzi=value;}
}

//小数点
function spot(){
  var pingmu=document.getElementById("pingmu");
  if(shuzi==""||xianshi==""){shuzi="0";xianshi="0"}
  shuzi+=".";
  xianshi+=".";
  pingmu.value=xianshi;
}

//十进制
function ten(){
  var total=0,pows=0
  var pingmu=document.getElementById("pingmu");
  var value=pingmu.value;
  var arr=value.split("");
  arr=arr.reverse();
  for(i=0;i<arr.length;i++){
  arr[i]-=0;
  pows=Math.pow(2,i);
  total+=arr[i]*pows;
  }
  pingmu.value=total;
  jisuan="";xianshi="";
}

//二进制
function two(){
  var pingmu=document.getElementById("pingmu");
  var value=pingmu.value;
  value-=0;
  var arr=new Array();
  for(i=0;1;i++){
  if(value==0)break;
  arr[i]=value%2;
  value/=2;
  value=parseInt(value);
  }
  arr=arr.reverse();
  str=arr.join("");
  pingmu.value=str;
  xianshi="";jisuan="";
}

//清空
function cee(){
  shuzi="";
  xianshi="";
  document.getElementById('pingmu').value="";
}

//清除
function ccc(){
  shuzi="";
  huanchun="";
  xianshi="";
  document.getElementById('pingmu').value="";
}

//退符
function cbb(){
  shuzi=shuzi.substring(0,shuzi.length-1)
  xianshi=xianshi.substring(0,xianshi.length-1);
  pingmu.value=xianshi;
}

</script>

<input id="pingmu" style="height: 36px; width: 282px; text-align: right;" type="text" /><br /><br />

<button class="short" onclick="cbb()" value="c">&larr;</button>
<button class="short" onclick="cee()" value="c">CE</button>
<button class="short" onclick="ccc()" value="c">C</button>
<button class="short" onclick="ten()" value="x">dec</button>
<button class="short" onclick="two()" value="x">bin</button><br /><br /><br />

<button class="short" onclick="num(this.value)" value="7">7</button>
<button class="short" onclick="num(this.value)" value="8">8</button>
<button class="short" onclick="num(this.value)" value="9">9</button>
<button class="short" onclick="fum(this.value)" value="*">*</button>
<button class="short" onclick="fum(this.value)" value="/">/</button><br /><br /><br />

<button class="short" onclick="num(this.value)" value="4">4</button>
<button class="short" onclick="num(this.value)" value="5">5</button>
<button class="short" onclick="num(this.value)" value="6">6</button>
<button class="short" onclick="fum(this.value)" value="-">-</button>
<button class="short" onclick="fum(this.value)" value="%">%</button><br /><br /><br />

<button class="short" onclick="num(this.value)" value="1">1</button>
<button class="short" onclick="num(this.value)" value="2">2</button>
<button class="short" onclick="num(this.value)" value="3">3</button>
<button class="short" onclick="fum(this.value)" value="+">+</button>
<button class="short" onclick="sum()" value="=">=</button>
<br /><br /><br />

<button class="short" onclick="num(this.value)" value="0">0</button>
<button class="short" onclick="sign()" value="+/-">+/-</button>
<button class="short" onclick="spot()" value=".">.</button>
<button class="short" onclick="reciprocal()" value="1/x">1/x</button>
<button class="short" onclick="nsqrt()" value="sqrt">sqrt</button><br /><br /><br /></p>
</script>
</body>

.short { height: 50px; width: 55px; float: left }


CE
C
dec
bin

7
8
9
*
/

4
5
6
-
%

1
2
3
+
=

0
+/-
.
1/x
sqrt

JavaScript 写计算器改进版的更多相关文章

  1. 用javascript写计算器

    本人新手,如果有什么不足的地方,希望可以得到指点 今天尝试用javascript写一个计算器 首先把计算器的按钮做出来,用button做好了,这样可以不用设置太多的样式 <button valu ...

  2. JavaScript写计算器

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 用javascript 写个函数返回一个页面里共使用了多少种HTML 标签

    今天我无意间看到一个面试题: 如何用javascript 写个函数返回一个页面里共使用了多少种HTML 标签? 不知你看到 是否蒙B了,如果是我 面试,肯定脑子嗡嗡的响.... 网上搜了搜也没有找到答 ...

  4. JavaScript写在Html页面的<head></head>中

    JavaScript写在Html页面的<head></head>中 ----------------- <html> <head> <style ...

  5. JavaScript写一个连连看的游戏

    天天看到别人玩连连看, 表示没有认真玩过, 不就把两个一样的图片连接在一起么, 我自己写一个都可以呢. 使用Javascript写了一个, 托管到github, 在线DEMO地址查看:打开 最终的效果 ...

  6. javascript写在<head>和<body>里的区别

    Javascript写在哪里?概括起来就是三种形式:1. 内部:Html网页的<body></body>中:2. 内部:Html网页的<head></head ...

  7. 原生javascript写的侧栏跟随效果

    浏览网站时经常看到有的网站上,当一个页面很长的时候,设定侧栏内容会跟随滚动条滚动,我们把这种效果叫做“侧栏跟随滚动”.这种特效对提高网站浏览量.文章点击率.广告点击量都有一定效果. 侧栏跟随滚动的实现 ...

  8. javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数

    javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...

  9. 用JavaScript写一个区块链

    几乎每个人都听说过像比特币和以太币这样的加密货币,但是只有极少数人懂得隐藏在它们背后的技术.在这篇博客中,我将会用JavaScript来创建一个简单的区块链来演示它们的内部究竟是如何工作的.我将会称之 ...

随机推荐

  1. Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合

    今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...

  2. 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  3. Canvas坐标系转换

    默认坐标系与当前坐标系 canvas中的坐标是从左上角开始的,x轴沿着水平方向(按像素)向右延伸,y轴沿垂直方向向下延伸.左上角坐标为x=0,y=0的点称作原点.在默认坐标系中,每一个点的坐标都是直接 ...

  4. html5标签canvas函数drawImage使用方法

    html5中标签canvas,函数drawImage(): 使用drawImage()方法绘制图像.绘图环境提供了该方法的三个不同版本.参数传递三种形式: drawImage(image,x,y):在 ...

  5. lua 学习笔记(1)

    一.lua函数赋值与函数调用         在lua中函数名也是作为一种变量出现的,即函数和所有其他值一样都是匿名的,当要使用某个函数时,需要将该函数赋值给一个变量,这样在函数块的其他地方就可以通过 ...

  6. Redis百亿级Key存储方案(转)

    1 需求背景 该应用场景为DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称supperid)的mapping关系,还包括了supperi ...

  7. 2Sum

    用哈希表(unordered_map)使得时间复杂度从O(n*n)降到O(n),空间复杂度从O(1)增到O(n):一边找一边插入哈希表 注意 在C++11以前要使用unordered_map需要 #i ...

  8. Flyweight(享元模式)

    import java.util.Hashtable; /** * 享元模式 * @author TMAC-J * 享元模式一般和工厂模式一起使用,但此处为了更好说明,只用享元模式 * 定义:享元模式 ...

  9. mysql 赋予用户权限

    # 赋予权限MySQL> grant 权限参数 on 数据库名称.表名称 to 用户名@用户地址 identified by '用户密码'; # 立即生效权限MySQL> flush pr ...

  10. oracle 存储过程

    来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...