-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
122 lines (117 loc) · 4.35 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Large Number Calculato</title>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
<style>
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background: linear-gradient(135deg, #f8f9fa, #dbe2ef);
font-family: 'Roboto', sans-serif;
margin: 0;
}
.calculator {
background-color: #fff;
padding: 20px;
border-radius: 15px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.display {
width: 100%;
height: 60px;
font-size: 28px;
text-align: right;
padding: 10px;
border: 1px solid #ccc;
border-radius: 10px;
margin-bottom: 15px;
box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.1);
}
.buttons {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
}
.buttons button {
width: 100%;
height: 60px;
font-size: 20px;
border: none;
border-radius: 10px;
background: linear-gradient(145deg, #e0e0e0, #f0f0f0);
cursor: pointer;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
transition: background-color 0.3s, box-shadow 0.3s;
}
.buttons button:hover {
background: linear-gradient(145deg, #d1d1d1, #e2e2e2);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}
.buttons button:active {
background-color: #c0c0c0;
}
.buttons button.special {
background-color: #ff6b6b;
color: white;
}
.buttons button.special:hover {
background-color: #ff5a5a;
}
</style>
</head>
<body>
<div class="calculator">
<input type="text" class="display" id="display" disabled>
<div class="buttons">
<button class="special" onclick="clearDisplay()">C</button>
<button onclick="appendToDisplay('^')">^</button>
<button onclick="appendToDisplay('%')">%</button>
<button class="special" onclick="calculateResult()">=</button>
<button onclick="appendToDisplay('7')">7</button>
<button onclick="appendToDisplay('8')">8</button>
<button onclick="appendToDisplay('9')">9</button>
<button onclick="appendToDisplay('/')">/</button>
<button onclick="appendToDisplay('4')">4</button>
<button onclick="appendToDisplay('5')">5</button>
<button onclick="appendToDisplay('6')">6</button>
<button onclick="appendToDisplay('*')">*</button>
<button onclick="appendToDisplay('1')">1</button>
<button onclick="appendToDisplay('2')">2</button>
<button onclick="appendToDisplay('3')">3</button>
<button onclick="appendToDisplay('-')">-</button>
<button onclick="appendToDisplay('0')">0</button>
<button onclick="appendToDisplay('.')">.</button>
<button onclick="appendToDisplay('+')">+</button>
</div>
</div>
<script>
function appendToDisplay(value) {
document.getElementById('display').value += value;
}
function clearDisplay() {
document.getElementById('display').value = '';
}
function calculateResult() {
let expression = document.getElementById('display').value;
try {
// 处理乘方运算
expression = expression.replace(/\^/g, '**');
// 处理百分比运算
expression = expression.replace(/%/g, '/100');
// 将表达式中的数字转换为 BigInt
expression = expression.replace(/\d+/g, 'BigInt($&)');
// 计算结果
const result = eval(expression);
document.getElementById('display').value = result.toString();
} catch (error) {
document.getElementById('display').value = '错误';
}
}
</script>
</body>
</html>