# Evaluating Formulas with Calculations Fields

Calculation Fields accept a formula and evaluate it upon runtime.

## How to Use Calculation Fields

Certain fields in the DealerTeam application allow entry of a formula to calculate values. In some cases these values are used directly and in others they are used to determine a true or false evaluation. The expressions available for these formulas are outlined below.

### Supported Operators

#### Mathematical Operators

Operator | Description |
---|---|

+ | Additive operator |

- | Subtraction operator |

* | Multiplication operator |

/ | 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 |

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

value. Boolean `not`

is implemented by a function.

### 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) |

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) |

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 |

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 |

* Functions names are case insensitive.

### Supported Constants

Constant | Description |
---|---|

PI | The value of PI, exact to 100 digits |

TRUE | The value one |

FALSE | The value zero |

## What's Next

Calculation Fields are used in the Sage Financials Integration. The original code used in Calculation Fields can be found in the apex-evalex repository on Github by user Jon Crenshaw (jdcrensh).