calculator
Scannednpx machina-cli add skill Code-and-Sorts/awesome-copilot-agents/calculator --openclawFiles (1)
SKILL.md
1.8 KB
Calculator
Evaluate arithmetic expressions with arbitrary-precision decimal math using 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
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
Source
git clone https://github.com/Code-and-Sorts/awesome-copilot-agents/blob/main/skills/calculator/SKILL.mdView on GitHub Overview
Calculator evaluates arithmetic expressions with arbitrary-precision decimal math using big.js. It avoids floating-point errors and supports parentheses, operator precedence, and exponents. Use it whenever exact decimal results are required.
How This Skill Works
It parses and evaluates expressions using big.js to ensure exact decimal results. Supported operators include +, -, *, /, ^, and parentheses, with exponentiation treated as right-associative and parentheses taking the highest precedence. It emits errors for common edge cases like empty input, mismatched parentheses, division by zero, or non-integer exponents.
When to Use It
- 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
- You need consistent results across repeated calculations
- Working with fractional values where exactness matters
Quick Start
- Step 1: cd scripts
- Step 2: npm ci || npm install
- Step 3: npm run build; npm run calculate "<expression>"
Best Practices
- Use explicit parentheses to enforce grouping and reduce precedence mistakes
- Test with simple, known results (e.g., 3 + 2 → 5) to validate calculations
- Remember exponents must be integers (big.js pow requires integer exponents)
- Be mindful of edge cases: empty expressions, mismatched parentheses, and division by zero
- Prefer decimal inputs over floating literals to ensure consistent results
Example Use Cases
- Input: '3 + 2' → Output: 5
- Input: '10 / 4' → Output: 2.5
- Input: '2 ^ 10' → Output: 1024
- Input: '(2 + 3) * 4' → Output: 20
- Input: '1 + 4.5 * (3-6) / 5' → Output: -1.7
Frequently Asked Questions
Add this skill to your agents