用js編寫(xiě)的簡(jiǎn)單的計(jì)算器代碼程序
最近編寫(xiě)的一個(gè)簡(jiǎn)單的計(jì)算器代碼程序,先給大家展示一下

分享代碼如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
#box{width: 295px; margin: 0 auto; text-align: justify; border: 1px solid #ddd; padding: 15px;}
.d_num{display: inline-block; margin: 10px; width: 33px; height: 30px; border: 1px solid #ddd; text-align: center; line-height: 30px; cursor: pointer;}
.sum{margin: 0 10px 10px; line-height: 30px; font-size: 20px;}
#sum{width: 205px; height: 30px; padding: 0 5px; margin-left: 5px; font-size: 20px;}
#process{width: 255px; height: 30px; padding: 0 5px; margin-left: 5px; font-size: 20px;}
</style>
</head>
<body>
<div id="box">
<div class="sum">
<input type="text" name="process" id="process" value="0" />
</div>
<div class="sum">
SUM:<input type="text" name="sum" id="sum" value="0" />
</div>
<div>
<span data-num="1" class="d_num">1</span>
<span data-num="2" class="d_num">2</span>
<span data-num="3" class="d_num">3</span>
<span data-num="<-" class="d_num"><-</span>
<span data-num="C" class="d_num">C</span>
</div>
<div>
<span data-num="4" class="d_num">4</span>
<span data-num="5" class="d_num">5</span>
<span data-num="6" class="d_num">6</span>
<span data-num="*" class="d_num">*</span>
<span data-num="/" class="d_num">/</span>
</div>
<div>
<span data-num="7" class="d_num">7</span>
<span data-num="8" class="d_num">8</span>
<span data-num="9" class="d_num">9</span>
<span data-num="+" class="d_num">+</span>
<span data-num="-" class="d_num">-</span>
</div>
<div>
<span data-num="0" class="d_num">0</span>
<span data-num="00" class="d_num">00</span>
<span data-num="." class="d_num">.</span>
<span data-num="%" class="d_num">%</span>
<span data-num="=" class="d_num">=</span>
</div>
</div>
<script type="text/javascript">
var $box = document.getElementById('box');
var $sum = document.getElementById('sum');
var $process = document.getElementById('process');
var sum = 0, process = '', num1 = '', num2 = '', temp = '', statu = false;
$box.onclick = function(e){
var event = window.event || e;
var ele = event.srcElement || event.target;
var _className = ele.className;
if(_className == 'd_num'){
var num = ele.getAttribute('data-num');//點(diǎn)擊的按鈕對(duì)應(yīng)的值
var NotNum = isNaN(num);
if(!NotNum || num == '.'){ //點(diǎn)擊了數(shù)字
if(!statu){ //還沒(méi)點(diǎn)擊過(guò)符號(hào)
if(num1 == '0'){
num1 = '';
}
num1 += num;
process = num1;
}else{ //已經(jīng)點(diǎn)擊過(guò)符號(hào)
if(num2 == '0'){
num2 = '';
}
num2 += num;
process = num1 + temp + num2;
}
$process.value = process;
}
else{ //點(diǎn)擊了符號(hào)
if(num1 == ''){//非法操作
return false;
}
if(num == 'C'){//歸零
num1 = '';
num2 = '';
process = '';
temp = '';
sum = '';
$process.value = '0';
$sum.value = '0';
statu = false;
return false;
}
if(num == '<-'){//退檔
if(sum != ''){
return false;
}
if(num2 == ''){
; num1 = num1.substring(0,num1.length-1);
if(num1 == ''){
num1 = '0';
}
process = num1;
$process.value = process;
}else{
num2 = num2.substring(0,num2.length-1);
if(num2 == ''){
num2 = '0';
}
process = num1 + temp + num2;
$process.value = process;
}
return false;
}
if(num2 != ''){//a&b
if(num == '='){//元操作到此結(jié)束
$process.value = process;
}else{
$process.value = process + num;
}
switch(temp){//元操作繼續(xù)
case '+' : sum = parseFloat(num1) + parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
case '-' : sum = parseFloat(num1) - parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
case '*' : sum = parseFloat(num1) * parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
case '/' : sum = parseFloat(num1) / parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
case '%' : sum = parseFloat(num1) % parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
}
}else{//a&?
if(num == '='){
return false;
}
$process.value = process + num;
process = '';
}
if(num == '='){
sum = '';
statu = false;
return false;
}
temp = num;//記錄操作符
statu = true;//已經(jīng)觸發(fā)操作狀態(tài)
}
}
};
</script>
</div>
</body>
</html>
現(xiàn)在只是個(gè)簡(jiǎn)單的標(biāo)準(zhǔn)計(jì)算器,能進(jìn)行加減乘除連續(xù)運(yùn)算,以及求余運(yùn)算。如果發(fā)生被除數(shù)為零的錯(cuò)誤,下面會(huì)給出提示,就像這樣:

這就是我設(shè)計(jì)的一個(gè)小程序,還有許多改進(jìn)的地方,比如界面的美化,會(huì)再接再厲。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- 簡(jiǎn)易js代碼實(shí)現(xiàn)計(jì)算器操作
- 用JS寫(xiě)的簡(jiǎn)單的計(jì)算器實(shí)現(xiàn)代碼
- javascript-簡(jiǎn)單的計(jì)算器實(shí)現(xiàn)步驟分解(附圖)
- js網(wǎng)頁(yè)版計(jì)算器的簡(jiǎn)單實(shí)現(xiàn)
- 基于JSP實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器的方法
- js實(shí)現(xiàn)模擬計(jì)算器退格鍵刪除文字效果的方法
- javascript簡(jiǎn)單計(jì)算器 可美化
- JSP實(shí)現(xiàn)計(jì)算器功能(網(wǎng)頁(yè)版)
- javascript實(shí)現(xiàn)簡(jiǎn)易計(jì)算器的代碼
- javascript白色簡(jiǎn)潔計(jì)算器
- JS實(shí)現(xiàn)的簡(jiǎn)單四則運(yùn)算計(jì)算器功能示例
相關(guān)文章
討論html與javascript在瀏覽器中的加載順序問(wèn)題
這篇文章主要是對(duì)html與javascript在瀏覽器中的加載順序問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11
js下為表格內(nèi)部動(dòng)態(tài)添加行的代碼
最近的一個(gè)項(xiàng)目中在保存表單數(shù)據(jù)時(shí),要用到一個(gè)動(dòng)態(tài)添加行的功能。平時(shí)動(dòng)態(tài)添加行只是在表格的最下面添加,現(xiàn)在在表格中間動(dòng)態(tài)添加行,而且表格內(nèi)部是包含并且單元格的,其實(shí)很簡(jiǎn)單,下面貼出代碼。2010-06-06
分享JS表單驗(yàn)證源碼(帶錯(cuò)誤提示及密碼等級(jí))
這篇文章主要介紹了JS表單驗(yàn)證源碼(帶錯(cuò)誤提示及密碼等級(jí)),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
javascript中的void運(yùn)算符語(yǔ)法及使用介紹
void是javascript中的一個(gè)操作符,void會(huì)計(jì)算表達(dá)式的值,但是會(huì)丟棄表達(dá)式的返回值接下來(lái)將詳細(xì)介紹下,感興趣的你可以參考下或許對(duì)你有所幫助2013-03-03
JavaScript實(shí)現(xiàn)即時(shí)通訊的 4 種方案

