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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端