JavaScript 写计算器改进版
<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">←</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 写计算器改进版的更多相关文章
- 用javascript写计算器
本人新手,如果有什么不足的地方,希望可以得到指点 今天尝试用javascript写一个计算器 首先把计算器的按钮做出来,用button做好了,这样可以不用设置太多的样式 <button valu ...
- JavaScript写计算器
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 用javascript 写个函数返回一个页面里共使用了多少种HTML 标签
今天我无意间看到一个面试题: 如何用javascript 写个函数返回一个页面里共使用了多少种HTML 标签? 不知你看到 是否蒙B了,如果是我 面试,肯定脑子嗡嗡的响.... 网上搜了搜也没有找到答 ...
- JavaScript写在Html页面的<head></head>中
JavaScript写在Html页面的<head></head>中 ----------------- <html> <head> <style ...
- JavaScript写一个连连看的游戏
天天看到别人玩连连看, 表示没有认真玩过, 不就把两个一样的图片连接在一起么, 我自己写一个都可以呢. 使用Javascript写了一个, 托管到github, 在线DEMO地址查看:打开 最终的效果 ...
- javascript写在<head>和<body>里的区别
Javascript写在哪里?概括起来就是三种形式:1. 内部:Html网页的<body></body>中:2. 内部:Html网页的<head></head ...
- 原生javascript写的侧栏跟随效果
浏览网站时经常看到有的网站上,当一个页面很长的时候,设定侧栏内容会跟随滚动条滚动,我们把这种效果叫做“侧栏跟随滚动”.这种特效对提高网站浏览量.文章点击率.广告点击量都有一定效果. 侧栏跟随滚动的实现 ...
- javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数
javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...
- 用JavaScript写一个区块链
几乎每个人都听说过像比特币和以太币这样的加密货币,但是只有极少数人懂得隐藏在它们背后的技术.在这篇博客中,我将会用JavaScript来创建一个简单的区块链来演示它们的内部究竟是如何工作的.我将会称之 ...
随机推荐
- ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...
- Spring Enable annotation – writing a custom Enable annotation
原文地址:https://www.javacodegeeks.com/2015/04/spring-enable-annotation-writing-a-custom-enable-annotati ...
- Spring aop应用之实现数据库读写分离
Spring加Mybatis实现MySQL数据库主从读写分离 ,实现的原理是配置了多套数据源,相应的sqlsessionfactory,transactionmanager和事务代理各配置了一套,如果 ...
- golang sync.WaitGroup bug
注意,这个结构体,要是想在函数之间传来传去的话,必须要使用指针....... 这个结构体里没有 指针,这个类型可以说没有“引用特性”. 被坑了一晚上.特此记录.
- php 基础代码大全(不断完善中)
下面是基础的PHP的代码,不断完善中~ //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */ 常量名 类常量建议全大写,单词间用下划线 ...
- AFNetworking报错"_UTTypeCopyPreferredTagWithClass", referenced from: _AFContentTypeForPathExtens
问题: 在和Unity交互的过程中,从Unity开发工具打包出来的项目文件,在添加AFNetworking库,运行时报出以下错误: Undefined symbols for architecture ...
- Android Butterknife 8.4.0 使用方法总结
转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6016341.html 本文出自[赵彦军的博客] 前言 ButterKnife 简介 ButterKnife是 ...
- Linux基础介绍【第四篇】
Linux文件和目录的属性及权限 命令: [root@oldboy ~]# ls -lhi total 40K 24973 -rw-------. 1 root root 1.1K Dec 10 16 ...
- Linux 权限设置chmod
Linux中设置权限,一般用chmod命令 1.介绍 权限设置chmod 功能:改变权限命令.常用参数: 1=x(执行权execute) 2=w(写权write) 4=r(读权Read) setuid ...
- 技术笔记:Indy的TIdSMTP改造,解决发送Html和主题截断问题
使用Indy来发邮件坑不少啊,只不过有比没有好吧,使用delphi6这种老工具没办法,只能使用了新一点的Indy版本9,公司限制... 1.邮件包含TIdText和TIdAttachment时会出现T ...