<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. 前端开发中SEO的十二条总结

    一. 合理使用title, description, keywords二. 合理使用h1 - h6, h1标签的权重很高, 注意使用频率三. 列表代码使用ul, 重要文字使用strong标签四. 图片 ...

  2. .NetCore MVC中的路由(2)在路由中使用约束

    p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...

  3. iPhone Anywehre虚拟定位提示“后台服务未启动,请重新安装应用后使用”的解决方法

    问题描述: iPhone越狱了,之后在Cydia中安装Anywhere虚拟定位,但是打开app提示:后台服务未启动,请重新安装应用后使用. 程序无法正常使用... 解决方法: 打开Cydia-已安装, ...

  4. React在开发中的常用结构以及功能详解

    一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: impo ...

  5. docker for mac 学习记录

    docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...

  6. OEL上使用yum install oracle-validated 简化主机配置工作

    环境:OEL 5.7 + Oracle 10.2.0.5 RAC 如果你正在用OEL(Oracle Enterprise Linux)系统部署Oracle,那么可以使用yum安装oracle-vali ...

  7. javascript有用小功能总结(未完待续)

    1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...

  8. iOS app内存分析套路

    iOS app内存分析套路 Xcode下查看app内存使用情况有2中方法: Navigator导航栏中的Debug navigator中的Memory Instruments 一.Debug navi ...

  9. Linux下的C Socket编程 -- server端的继续研究

    Linux下的C Socket编程(四) 延长server的生命周期 在前面的一个个例子中,server在处理完一个连接后便会立即结束掉自己,然而这种server并不科学啊,server应该是能够一直 ...

  10. spring boot1

    spring boot 玩转spring boot--快速开始   开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv ...