# Calculator

JuniperBot Calculator Description

Calculator in JuniperBot is presented as "math" command. This article shows what it can do.

### Mathematical Operators#

Operator Description
+ Additive operator / Unary plus
- Subtraction operator / Unary minus
* Multiplication operator, can be omitted in front of an open bracket
/ Division operator
% Remainder operator (Modulo)
^ Power operator

### Boolean Operators#

Operator Description
= Equals
== Equals
!= Not equals
<> Not equals
< Less than
<= Less than or equal to
> Greater than
>= Greater than or equal to
&& Boolean "AND"
|| Boolean "OR"

Info

Boolean operators result always in a BigDecimal value of 1 or 0 (zero). Any non-zero value is treated as a true value.

### Supported Functions#

Function Description
`NOT(expression)` Boolean negation, 1 (means true) if the expression is not zero
`IF(condition, value_if_true, value_if_false)` Returns one value if the condition evaluates to true or the other if it evaluates to false
`RANDOM()` Produces a random number between 0 and 1
`MIN(e1, e2, ...)` Returns the smallest of the given expressions
`MAX(e1, e2, ...)` Returns the biggest of the given expressions
`ABS(expression)` Returns the absolute (non-negative) value of the expression
`ROUND(expression, precision)` Rounds a value to a certain number of digits, uses the current rounding mode
`FLOOR(expression)` Rounds the value down to the nearest integer
`CEILING(expression)` Rounds the value up to the nearest integer
`LOG(expression)` Returns the natural logarithm (base e) of an expression
`LOG10(expression)` Returns the common logarithm (base 10) of an expression
`SQRT(expression)` Returns the square root of an expression
`SIN(expression)` Returns the trigonometric sine of an angle (in degrees)
`COS(expression)` Returns the trigonometric cosine of an angle (in degrees)
`TAN(expression)` Returns the trigonometric tangens of an angle (in degrees)
`COT(expression)` Returns the trigonometric cotangens of an angle (in degrees)
`SEC(expression)` Returns the secant (in degrees)
`CSC(expression)` Returns the cosecant (in degrees)
`ASIN(expression)` Returns the angle of asin (in degrees)
`ACOS(expression)` Returns the angle of acos (in degrees)
`ATAN(expression)` Returns the angle of atan (in degrees)
`ACOT(expression)` Returns the angle of acot (in degrees)
`ATAN2(y,x)` Returns the angle of atan2 (in degrees)
`SINH(expression)` Returns the hyperbolic sine of a value
`COSH(expression)` Returns the hyperbolic cosine of a value
`TANH(expression)` Returns the hyperbolic tangens of a value
`COTH(expression)` Returns the hyperbolic cotangens of a value
`SECH(expression)` Returns the hyperbolic secant (in degrees)
`CSCH(expression)` Returns the hyperbolic cosecant (in degrees)
`ASINH(expression)` Returns the angle of hyperbolic sine (in degrees)
`ACOSH(expression)` Returns the angle of hyperbolic cosine (in degrees)
`ATANH(expression)` Returns the angle of hyperbolic tangens of a value
`RAD(expression)` Converts an angle measured in degrees to an approximately equivalent angle measured in radians
`DEG(expression)` Converts an angle measured in radians to an approximately equivalent angle measured in degrees
`FACT(expression)` Retuns the factorial value of an integer. Will return 1 for 0 or a negative number

### Supported Constants#

Constant Description
`e` The value of e, exact to 70 digits
`PI` The value of PI, exact to 100 digits
`TRUE` The value one
`FALSE` The value zero
`NULL` The null value