The expression evaluator is based on an Excel-like implementation. It can parse mathematical expressions with support for the most commonly used functions.
Examples:
4*(24/2-5)+14
cos(Pi/4)*sin(Pi/6)^2
1-1/E^(0.5^2)
min(5;2;9;10;42;35)
Five data types are supported:
| Type | Description |
|---|---|
double |
Floating-point number (default for all calculations) |
int |
Integer. Use the int() function to convert explicitly |
hexadecimal |
Hexadecimal number. Converted to double in calculations |
string |
Text string |
boolean |
Logical value (true / false) |
Note: Integers and hexadecimals are always converted to
doublewhen used in calculations. Useint()to convert to integer explicitly.
| Constant | Description |
|---|---|
Pi |
The number π ≈ 3.14159… |
E |
Euler’s number e ≈ 2.71828… |
| Function | Description | Example |
|---|---|---|
Abs(x) |
Absolute value | Abs(-5) → 5 |
Acos(x) |
Arc cosine (inverse cosine) | Acos(0) → 1.5708 |
Asin(x) |
Arc sine (inverse sine) | Asin(1) → 1.5708 |
Atan(x) |
Arc tangent (inverse tangent) | Atan(1) → 0.7854 |
Atan2(y;x) |
Arc tangent of y/x, using signs to determine quadrant | Atan2(1;1) → 0.7854 |
Ceiling(x) |
Rounds up to the nearest integer | Ceiling(4.1) → 5 |
Cos(x) |
Cosine | Cos(0) → 1 |
Cosh(x) |
Hyperbolic cosine | Cosh(0) → 1 |
Exp(x) |
e raised to the power x | Exp(1) → 2.7183 |
Fact(x) |
Factorial | Fact(5) → 120 |
Floor(x) |
Rounds down to the nearest integer | Floor(4.9) → 4 |
Ln(x) |
Natural logarithm (base e) | Ln(E) → 1 |
Log(x) |
Common logarithm (base 10) | Log(100) → 2 |
Pow(x;y) |
x raised to the power y | Pow(2;10) → 1024 |
Round(x) |
Rounds to the nearest integer | Round(4.5) → 5 |
Sign(x) |
Returns the sign: −1, 0, or 1 | Sign(-42) → -1 |
Sin(x) |
Sine | Sin(Pi/2) → 1 |
Sinh(x) |
Hyperbolic sine | Sinh(1) → 1.1752 |
Sqr(x) |
Square (x²) | Sqr(5) → 25 |
Sqrt(x) |
Square root | Sqrt(25) → 5 |
Trunc(x) |
Truncates to integer (removes decimal part) | Trunc(4.9) → 4 |
| Function | Description | Example |
|---|---|---|
Avg(…) |
Average of values | Avg(2;4;6) → 4 |
Max(…) |
Maximum value | Max(5;2;9) → 9 |
Min(…) |
Minimum value | Min(5;2;9) → 2 |
StDev(…) |
Standard deviation | StDev(2;4;6) |
Var(…) |
Variance | Var(2;4;6) |
| Function | Description | Example |
|---|---|---|
And(a;b) |
Logical AND | And(true;false) → false |
Or(a;b) |
Logical OR | Or(true;false) → true |
Not(x) |
Logical NOT | Not(true) → false |
If(cond;then;else) |
Conditional: returns then if cond is true, otherwise else |
If(5>6;"yes";"no") → "no" |
| Function | Description | Example |
|---|---|---|
Format(x;fmt) |
Formats a value using a format string | Format(Pi;"0.00") → "3.14" |
Hex(x) |
Converts a number to hexadecimal string | Hex(255) → "FF" |
Left(s;n) |
Returns the first n characters |
Left("hello";3) → "hel" |
Right(s;n) |
Returns the last n characters |
Right("hello";3) → "llo" |
Mid(s;start;n) |
Returns n characters starting at start |
Mid("hello";2;3) → "ell" |
Len(s) |
Returns the length of a string | Len("hello") → 5 |
Lower(s) |
Converts to lowercase | Lower("HELLO") → "hello" |
Upper(s) |
Converts to uppercase | Upper("hello") → "HELLO" |
Val(s) |
Converts a string to a number | Val("42") → 42 |
| Function | Description |
|---|---|
About |
Displays version information |
Clear |
Clears all user-defined variables and functions |
Help |
Displays help information |
The & operator concatenates strings:
"Hello " & "world" // → "Hello world"
"Pi = " & Pi // → "Pi = 3.14159265358979"
Len("hello world") // → 11
true != false // → true
5 > 6 ? "hello" : "world" // → "world"
If(5 > 6;"hello";"world") // → "world"
Use := to declare variables and functions:
x := 42
f(x) := x^2
f(x) := sin(x) / cos(x) // declare dynamic functions using built-in functions
Functions can call themselves recursively. Variables declared as function parameters are local to that function; other variables are resolved from the global scope.
fac(n) := (n = 0) ? 1 : fac(n-1)*n
// fac calls itself with different parameters
f(x) := x * Y
// x is in function scope, Y is in global scope
From highest to lowest priority:
| Priority | Operator | Description |
|---|---|---|
| 1 | ( ), f(x) |
Grouping, function calls |
| 2 | ! ~ - + |
Unary operators |
| 3 | ^ |
Exponentiation (Excel rule: a^b^c → (a^b)^c) |
| 4 | * / % |
Multiplication, division, modulo |
| 5 | + - |
Addition, subtraction |
| 6 | & |
String concatenation |
| 7 | < <= > >= |
Comparison operators |
| 8 | = != <> |
Equality and inequality |
| 9 | && |
Logical AND |
| 10 | \|\| |
Logical OR |
| 11 | ?: |
Ternary conditional |
| 12 | := |
Assignment |