---
name: Calculator
slug: calculator-2
category: AI Engineering
description: Calculator evaluates arithmetic expressions with arbitrary-precision decimal math. Use it to calculate expressions with parentheses, operator precedence, exponents, or to avoid floating-point errors.
github: "https://github.com/Code-and-Sorts/awesome-copilot-agents/tree/main/skills/calculator"
language: TypeScript
stars: 561
forks: 92
install: "npx degit https://github.com/Code-and-Sorts/awesome-copilot-agents/tree/main/skills/calculator ~/.claude/skills/calculator"
installs_to: ~/.claude/skills/calculator
source_path: skills/calculator/SKILL.md
collection_size: 4
category_size: 2451
collection_url: "https://dirskills.com/collections/Code-and-Sorts/awesome-copilot-agents"
added: 2026-08-25T05:14:40.651Z
last_synced: 2026-08-25T05:14:40.651Z
canonical_url: "https://dirskills.com/skills/calculator-2"
---

# Calculator

Calculator evaluates arithmetic expressions with arbitrary-precision decimal math. Use it to calculate expressions with parentheses, operator precedence, exponents, or to avoid floating-point errors.

**Install:**

```bash
npx degit https://github.com/Code-and-Sorts/awesome-copilot-agents/tree/main/skills/calculator ~/.claude/skills/calculator
```

## README

# Calculator

Evaluate arithmetic expressions with arbitrary-precision decimal math using [big.js](https://github.com/MikeMcl/big.js/).

## When to Use

- User asks to calculate or evaluate a math expression
- Precise decimal arithmetic is needed (avoids floating-point errors like `0.1 + 0.2 = 0.30000000000000004`)
- Expressions involve parentheses, operator precedence, or exponents

## Supported Operations

| Operator | Description | Precedence |
| -------- | ----------- | ---------- |
| `+` | Addition | 1 |
| `-` | Subtraction | 1 |
| `*` | Multiplication | 2 |
| `/` | Division | 2 |
| `^` | Exponent (right-associative) | 3 |
| `()` | Parentheses | Highest |

## Usage

```bash
cd scripts
npm ci || npm install
npm run build
npm run calculate "<expression>"
```

## Examples

| Input | Output |
| ----- | ------ |
| `"3 + 2"` | `5` |
| `"10 / 4"` | `2.5` |
| `"2 ^ 10"` | `1024` |
| `"(2 + 3) * 4"` | `20` |
| `"1 + 4.5 * (3-6) / 5"` | `-1.7` |
| `"-5 + 3"` | `-2` |
| `"2 ^ 3 ^ 2"` | `512` (right-associative: 2^9) |

## Edge Cases

- **Empty expression**: Throws "Empty expression" error
- **Mismatched parentheses**: Throws "Mismatched parentheses" error
- **Division by zero**: big.js throws an error
- **Exponent must be integer**: big.js `.pow()` requires integer exponents

## Limitations

- No trigonometric functions (sin, cos, tan)
- No variables or symbolic math
- Exponents must be integers
- No factorial, modulo, or bitwise operators
