DEV Community

Cover image for Building a Simple Scientific Calculator with JavaScript
Marien
Marien

Posted on

Building a Simple Scientific Calculator with JavaScript

Creating your own scientific calculator can be a fun way to sharpen your JavaScript skills. Instead of just handling addition or subtraction, we’ll expand it to include advanced operations like trigonometry, exponentiation, and logarithms.

Why Build a Calculator?

Calculators are one of the most common projects for learning programming. They combine basic concepts like:

  1. Event handling
  2. Mathematical functions
  3. User input/output
  4. UI design

By turning it into a scientific calculator, you also get exposure to Math methods in JavaScript that many developers overlook.

Setting up the HTML

Here’s a very simple structure:

<div class="calculator">
<input type="text" id="display" readonly />
<div class="buttons">
<button onclick="clearDisplay()">C</button>
<button onclick="appendValue('sin(')">sin</button>
<button onclick="appendValue('cos(')">cos</button>
<button onclick="appendValue('tan(')">tan</button>
<button onclick="appendValue('Math.log(')">log</button>
<button onclick="appendValue('Math.pow(')">xʸ</button>
<button onclick="appendValue('Math.sqrt(')">√</button>
<button onclick="appendValue('Math.PI')">π</button>
<button onclick="appendValue('Math.E')">e</button>
<button onclick="calculate()">=</button>
</div>
</div>

JavaScript Logic

`const display = document.getElementById('display');

function appendValue(val) {
display.value += val;
}

function clearDisplay() {
display.value = '';
}

function calculate() {
try {
display.value = eval(display.value);
} catch {
display.value = 'Error';
}
}`

Styling with CSS (Optional)

`.calculator {
width: 250px;
margin: 20px auto;
padding: 15px;
background: #1e1e2f;
border-radius: 10px;
color: #fff;
}

display {

width: 100%;
height: 40px;
font-size: 18px;
margin-bottom: 10px;
}

button {
margin: 5px;
padding: 10px;
font-size: 16px;
border-radius: 5px;
border: none;
cursor: pointer;
}`

Top comments (1)

Collapse
 
soraiz_builders_b3a09f6ce profile image
Soraiz Builders

If you would share the complete functional code, it will be really helpful for the ones who want to create tools like calculator but not know the exactly coding.