[Javascript]简单的数学计算器
一个简单的数学计算器
实现了小部分的基础功能, 大概是这样:
代码如下:
<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>
大概是这样: