能实现简单基本的加减乘除运算,利用css+div设计界面,用JavaScript处理按钮消息,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>简易计算器</title>
<style type="text/css">
.calculator {
width: 500px;
margin: 0 auto;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.calculator input[type="text"] {
width: 100%;
margin-bottom: 10px;
padding: 5px;
font-size: 16px;
}
.calculator input[type="button"] {
width: 100px;
height: 100px;
margin: 5px;
font-size: 20px;
}
.calculator input[type="button"].operator {
background-color: #f0ad4e;
}
.calculator input[type="button"].equal {
background-color: #5cb85c;
}
</style>
</head>
<body>
<div class="calculator">
<input type="text" id="result" readonly>
<input type="button" value="<-" onclick="backspace()">
<input type="button" value="CE" onclick="clearEntry()">
<input type="button" value="AC" onclick="clearResult()">
<input type="button" value="±" class="operator" onclick="toggleSign()">
<br>
<input type="button" value="7" onclick="addToResult('7')">
<input type="button" value="8" onclick="addToResult('8')">
<input type="button" value="9" onclick="addToResult('9')">
<input type="button" value="/" class="operator" onclick="addToResult('/')">
<br>
<input type="button" value="4" onclick="addToResult('4')">
<input type="button" value="5" onclick="addToResult('5')">
<input type="button" value="6" onclick="addToResult('6')">
<input type="button" value="*" class="operator" onclick="addToResult('*')">
<br>
<input type="button" value="1" onclick="addToResult('1')">
<input type="button" value="2" onclick="addToResult('2')">
<input type="button" value="3" onclick="addToResult('3')">
<input type="button" value="-" class="operator" onclick="addToResult('-')">
<br>
<input type="button" value="0" onclick="addToResult('0')">
<input type="button" value="." onclick="addDecimal()">
<input type="button" value="=" class="equal" onclick="calculate()">
<input type="button" value="+" class="operator" onclick="addToResult('+')">
</div>
<script>
function addToResult(value) {
document.getElementById("result").value += value;
}
function clearEntry() {
var result = document.getElementById("result").value;
document.getElementById("result").value = result.slice(0, -1);
}
function clearResult() {
document.getElementById("result").value = "";
}
function backspace() {
var result = document.getElementById("result").value;
document.getElementById("result").value = result.slice(0, -1);
}
function toggleSign() {
var result = document.getElementById("result").value;
if (result.charAt(0) === '-') {
document.getElementById("result").value = result.slice(1);
} else {
document.getElementById("result").value = '-' + result;
}
}
function addDecimal() {
var result = document.getElementById("result").value;
if (result.indexOf('.') === -1) {
document.getElementById("result").value += '.';
}
}
function calculate() {
var result = document.getElementById("result").value;
if (result) {
try {
var output = eval(result);
document.getElementById("result").value = output;
} catch (e) {
alert('Invalid Expression');
clearResult();
}
}
}
</script>
</body>
</html>