# ExpressionEvaluator

> Evaluates simple math expressions; supports int / float and operators: + - * / % ^ ( ).

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public class ExpressionEvaluator
```

## Remarks

This class has a single generic static method [ExpressionEvaluator.Evaluate](/engine/6000.7/script-reference/unityengine/expressionevaluator/evaluate.md), that evaluates a mathematical expression and returns the result.

Supported number types are: `int`, `float`, `long`, `double`.

The expressions that can be evaluated support:

* arithmetic operators `a+b`, `a-b`, `a*b`, `a/b`,

* power (`a^b`) and modulo (`a%b`) operators,

* parentheses,

* math functions `sqrt(a)`, `floor(a)`, `ceil(a)`, `round(a)`,

* trigonometic functions `cos(a)`, `sin(a)`, `tan(a)` (argument expressed in radians), and a constant `pi`.

## Examples

```csharp
using UnityEditor;
using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    [MenuItem("Example/Int Expression")]
    public static void IntExample()
    {
        ExpressionEvaluator.Evaluate("2+3", out int result);
        // prints 5
        Debug.Log(result);
    }

    [MenuItem("Example/Float Expression")]
    public static void FloatExample()
    {
        ExpressionEvaluator.Evaluate("sqrt(cos(pi/3))", out float result);
        // prints 0.7071068
        Debug.Log(result);
    }
}
```

## Static Methods

| Method                                                                                  | Description                                         |
| --------------------------------------------------------------------------------------- | --------------------------------------------------- |
| [Evaluate](/engine/6000.7/script-reference/unityengine/expressionevaluator/evaluate.md) | Evaluates a math expression and returns the result. |
