一個簡單的數學計算器
實現了小部分的基礎功能, 大概是這樣:
代碼如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Calculator</title>
</head>
<style>
.all-calculator-location-set{
width: 260px;
margin: 200px auto;
}
.btn-style{
width: 60px;
height: 40px;
}
.input-calculator-show{
width: 250px;
height: 50px;
text-align: right;
font-size: 30px;
}
.panel-location{
margin-top: 20px;
}
</style>
<body>
<div class="all-calculator-location-set">
<div>
<input class="input-calculator-show" type="text" id="Calculator_show" disabled="disabled" value="0">
</div>
<div class="panel-location">
<input class="btn-style" type="button" value="CE" onclick="clear_this_num()">
<input class="btn-style" type="button" value="C" onclick="clear_num()">
<input class="btn-style" type="button" value="←" onclick="backspace_num()">
<input class="btn-style" type="button" value="/" onclick="calculation(3)">
<br>
<input class="btn-style" type="button" value="7" onclick="add_num(7)">
<input class="btn-style" type="button" value="8" onclick="add_num(8)">
<input class="btn-style" type="button" value="9" onclick="add_num(9)">
<input class="btn-style" type="button" value="*" onclick="calculation(2)">
<br>
<input class="btn-style" type="button" value="4" onclick="add_num(4)">
<input class="btn-style" type="button" value="5" onclick="add_num(5)">
<input class="btn-style" type="button" value="6" onclick="add_num(6)">
<input class="btn-style" type="button" value="-" onclick="calculation(1)">
<br>
<input class="btn-style" type="button" value="1" onclick="add_num(1)">
<input class="btn-style" type="button" value="2" onclick="add_num(2)">
<input class="btn-style" type="button" value="3" onclick="add_num(3)">
<input class="btn-style" type="button" value="+" onclick="calculation(0)">
<br>
<input class="btn-style" type="button" value="±" onclick="minus_num()">
<input class="btn-style" type="button" value="0" onclick="add_num(0)">
<input class="btn-style" type="button" value="." onclick="add_num('.')">
<input class="btn-style" type="button" value="=" onclick="getValue()">
<br>
</div>
</div>
</body>
<script>
var Calculator_show = document.getElementById('Calculator_show');
var first_num = "";
var second_num = "";
var setCalculatorType = -1;
/**
* 獲取鍵盤輸入, 組成數字
*
* @param {*} param 輸入的數字
*/
function add_num(param) {
//當一次計算完成的時候, 如果不繼續點擊運算符,
//那麼返回初始狀態, 爲下一次計算做準備
if (first_num != "" && setCalculatorType == -1 && second_num != "") {
clear_num();
}
//當用戶直接點擊小數點時, 自動補零
if (first_num.length === 0 && param == '.') {
first_num += "0";
}
first_num += param.toString();
Calculator_show.value = first_num;
}
/**
*回退鍵
*
* @returns
*/
function backspace_num() {
//當一次計算的完成的時候, 數字不能進行回退操作
//獲取異常, 直接返回原始狀態即可
try {
if (first_num.length === 1) {
Calculator_show.value = 0;
first_num = "";
return;
}
first_num = first_num.substring(0, first_num.length - 1);
Calculator_show.value = first_num;
} catch (e) {
clear_num();
}
}
/**
*清除當前計算的數, 以供重新輸入
*
*/
function clear_this_num() {
first_num = "";
Calculator_show.value = 0;
}
/**
*計算器迴歸到原始狀態
*
*/
function clear_num() {
first_num = "";
second_num = "";
setCalculatorType = -1;
Calculator_show.value = 0;
}
/**
*調整操作數是正數還是負數
*
*/
function minus_num() {
if (first_num != 0) {
first_num = Number(0 - first_num);
Calculator_show.value = first_num;
}
}
/**
*存儲操作數
*設置計算方式
*
* @param {*} param 計算方式
*/
function calculation(param) {
if (setCalculatorType == -1) {
second_num = first_num;
}
// switch (param) {
// case 0:
// setCalculatorType = 0;
// break;
// case 1:
// setCalculatorType = 1;
// break;
// case 2:
// setCalculatorType = 2;
// break;
// case 3:
// setCalculatorType = 3;
// break;
// }
setCalculatorType = param;
first_num = "";
Calculator_show.value = 0;
}
function addition() {
return Number(second_num) + Number(first_num);
}
function subtraction() {
return Number(second_num) - Number(first_num);
}
function multiplication() {
return Number(second_num) * Number(first_num);
}
function division() {
return Number(second_num) / Number(first_num);
}
/**
*獲取最後的結果
*
*/
function getValue() {
switch (setCalculatorType) {
case 0:
Calculator_show.value = first_num = addition();
break;
case 1:
Calculator_show.value = first_num = subtraction();
break;
case 2:
Calculator_show.value = first_num = multiplication();
break;
case 3:
Calculator_show.value = first_num = division();
break;
default:
Calculator_show.value = 0;
}
setCalculatorType = -1;
}
</script>
</html>
大概是這樣: