About calculator
A calculator skill for evaluating arithmetic expressions with arbitrary-precision decimal math. It supports standard operators, parentheses, and integer exponents, but not symbolic math or trigonometric functions.
Key features
- 01Arbitrary-precision decimal arithmetic
- 02Operator precedence and parentheses
- 03Right-associative integer exponents
- 04Errors for invalid expressions and division by zero
Use cases
- 01Calculate decimal expressions without floating-point artifacts
- 02Evaluate expressions with nested parentheses
- 03Compute integer powers with right-associative order
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ code-and-sorts/ awesome-copilot-agents --skill calculatorAfter installing, type/calculatorin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
scripts/jest.config.jspackage-lock.jsonpackage.jsontsconfig.jsonscripts/src/calculator.test.tscalculator.tsrun.tsDetails
From the project READMECalculator
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
Comments
Markdown supported