2.1.2 • Published 3 years ago
editor-calc v2.1.2
editor-calc
Extend decimal.js to an editor extension, used in coc-calc and vscode-calc
Usage
import { calculate, parse } from 'editor-calc';
const result = calculate('sin(PI/2)');
// result === {
// skip: 0,
// result: '1',
// }
const result = calculate('1 + 1 = 2 + 3 = 5 + 5 =');
// result === {
// skip: 15,
// result: '10'
// }
parse('sin(PI/2) + --- add(1, 2)').getPrintTree().join('\n');
// BinaryExpr -> sin(PI/2)+---add(1,2) => -2.00000
// FuncCall -> sin(PI/2) => 1.00000
// BinaryExpr -> PI/2 => 1.57080
// ConstantAtomic -> PI => 3.14159
// Operator -> /
// DecimalAtomic -> 2 => 2.00000
// Operator -> +
// Unary -> ---add(1,2) => -3.00000
// Operator -> ---
// FuncCall -> add(1,2) => 3.00000
// DecimalAtomic -> 1 => 1.00000
// DecimalAtomic -> 2 => 2.00000Operators
Precedence is from highest to lowest.
| Operator | Example |
|---|---|
exponentiation ** | 4 ** 3 ** 2 equivalent to 4 ** (3 ** 2) |
unary + - | -2 +2 |
multiply / divide / remainder * / % | 4 % 3 4 * 3 |
| addition / subtraction | .2 - .1 .1 + .2 |
Mathematics Constant
EPI
Mathematics Functions
abs, acos, acosh, add, asin,
asinh, atan, atanh, atan2, cbrt
ceil, cos, cosh, div, exp,
floor, hypot, ln, log, log2,
log10, max, min, mod, mul,
pow, random, round, sign, sin,
sinh, sqrt, sub, tan, tanh, trunc