---
title: "Arithmetic operators"
canonical: "https://docs.cuesystem.com/space/CVCHELP/522421802/Arithmetic%20operators"
format: markdown
---
> Macro (toc)

---

# +

Operator plus. 

#### Syntax 

```visualbasic
Result := Expression1 + Expression2
```

#### Example 

```visualbasic
Var a As Long := 8 
Var b As Long := 2 
Var c As Long 

c := a + b 
// c = 8 + 2 = 10
```

# + (unary)

Operator unary plus. 

#### Syntax 

```visualbasic
Result := +Expression
```

#### Example 

```visualbasic
Var a As Long := 8 
Var c As Long 

c := +a 
// c = 8
```

# -

Operator minus. 

#### Syntax 

```visualbasic
Result := Expression1 - Expression2
```

#### Example 

```visualbasic
Var a As Long := 8 
Var b As Long := 2 
Var c As Long 

c := a – b 
// c = 8 – 2 = 6
```

# - (unary)

Operator unary minus. 

#### Syntax 

```visualbasic
Result := -Expression
```

#### Example 

```visualbasic
Var a As Long := 8 
Var c As Long 

c := -a 
// c = -8
```

# *

Operator multiplying. 

#### Syntax 

```visualbasic
Result := Expression1 * Expression2
```

#### Example 

```visualbasic
Var a As Long := 8 
Var b As Long := 2 
Var c As Long 

c := a * b 
// c = 8 * 2 = 16
```

# /

Operator dividing. Expression1 or Expression2 must be a Double type to execute the floating point dividing (The Result must be a Double type, of course). 

|  |  |  |  |
| --- | --- | --- | --- |
| Expression1 type | Expression2 type | Result type | Type of dividing |
| Double | Double | Double | Floating point |
| Double | Long | Double | Floating point |
| Long | Double | Double | Floating point |
| Long | Long | Long | Integral |

#### Syntax 

```visualbasic
Result := Expression1 / Expression2
```

#### Double/Double, result: Double, floating point dividing 

```visualbasic
Var a As Double := 15.0 
Var b As Double := 4.0 
Var c As Long 
Var d As Double 

c := a / b 
d := a / b 
// c = 3 
// d = 3.75
```

#### Double/Long, result: Double, floating point dividing 

```visualbasic
Var a As Double := 15.0 
Var b As Long := 4.0 
Var c As Long 
Var d As Double 

c := a / b 
d := a / b 
// c = 3 
// d = 3.75
```

#### Long/Double, result: Double, floating point dividing 

```visualbasic
Var a As Long := 15.0 
Var b As Double := 4.0 
Var c As Long 
Var d As Double 

c := a / b 
d := a / b 
// c = 3 
// d = 3.75
```

#### Long/Long, result: Long, integral dividing 

```visualbasic
Var a As Long := 15.0 
Var b As Long := 4.0 
Var c As Long 
Var d As Double 

c := a / b 
d := a / b 
// c = 3 
// d = 3.0
```

# ^

The operator calculates an Expression1 raised to the power of an Expression2. Expression1 is a base, the Expression2 is an exponent. 

#### Syntax* *

```visualbasic
Result := Expression1 ^ Expression2
```

#### Example* *

```visualbasic
Var a As Long := 8 
Var b As Long := 3 
Var c As Long 

c := a ^ b 
// c = 8 * 8 * 8 = 512
```

# Abs

The operator returns the absolute value. The value can be numerical <u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u>, <u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u>, <u>[Double](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Double)</u> (first syntax), or <u>[Time](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Time)</u> (second syntax). 

#### Syntax 

```visualbasic
Abs(NumericExpression) As Double
```

#### Syntax 

```visualbasic
Abs(TimeExpression) As Time
```

#### Example 

```visualbasic
Var a As Double := -4.8 
Var b As Double := 10.3 
Var Absolute As Double 

Absolute := Abs(a) 
// Absolute = 4.8 

Absolute := Abs(b) 
// Absolute = 10.3
```

#### Example 

```visualbasic
Var a As Time := -3:20 
Var b As Time := 4:10 
Var Absolute As Time 

Absolute := Abs(a) 
// Absolute = 3:20 

Absolute := Abs(b) 
// Absolute = 4:10
```

# Ceiling

The operator returns the smallest <u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u> (integral) value that is greater than or equal to <u>[ParamArray](https://cue.atlassian.net/wiki/spaces/CVCHELP/pages/509149361)</u> values of <u>[Double](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Double)</u>. Items of the ParamArray can be Arrays as well (second example). 

#### Syntax 

```visualbasic
Ceiling(ParamArray) As Long
```

#### Example 

```visualbasic
Var a As Double := 4.8 
Var b As Double := -4.8 
Var CeilingValue As Long 

CeilingValue := Ceiling(a) 
// CeilingValue = 5 

CeilingValue := Ceiling(b) 
// CeilingValue = -4
```

#### Example 

```visualbasic
Var a As Double := 4.8 
Var b As Double := -4.8 
Var c[4] As Double 
Var CeilingValue As Long 

c[1] := -20.2 
c[2] := -10.4 
c[3] := 30.4 
c[4] := 40.2 

CeilingValue := Ceiling(a, b, c) 
// CeilingValue = 41
```

# Floor

The operator returns the largest <u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u> (integral) value that is less than or equal to <u>[ParamArray](https://cue.atlassian.net/wiki/spaces/CVCHELP/pages/509149361)</u> values of <u>[Double](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Double)</u>. Items of the ParamArray can be Arrays as well (second example). 

#### Syntax 

```visualbasic
Floor(ParamArray) As Long
```

#### Example 

```visualbasic
Var a As Double := 4.8 
Var b As Double := -4.8 
Var FloorValue As Long 

FloorValue := Floor(a) 
// FloorValue = 4 

FloorValue := Floor(b) 
// FloorValue = -5
```

#### Example 

```visualbasic
Var a As Double := 4.8 
Var b As Double := -4.8 
Var c[4] As Double 
Var FloorValue As Long 

c[1] := -20.2 
c[2] := -10.4 
c[3] := 30.4 
c[4] := 40.2 

FloorValue := Floor(a, b, c) 
// FloorValue = -21
```

# Max

The operator returns the larger of <u>[ParamArray](https://cue.atlassian.net/wiki/spaces/CVCHELP/pages/509149361)</u> values. The values can be numerical <u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u>, <u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u>, <u>[Double](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Double)</u> (first syntax), or <u>[Time](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Time)</u> (second syntax). Items of the ParamArray can be Arrays as well (second example). 

#### Syntax of numerical types 

```visualbasic
Max(ParamArray) As Double
```

#### Syntax of Time type 

```visualbasic
Max(ParamArray) As Time
```

#### Example 

```visualbasic
Var a As Long := 3 
Var b As Long := 15 
Var Maximum As Double 

Maximum := Max(a, b) 
// Maximum = 15.0
```

#### Example 

```visualbasic
Var a As Long := 3 
Var b As Long := 15 
Var c As Double := - 5.6 
Var d[4] As Double 
Var Maximum As Double 

d[1] := -20.2 
d[2] := -10.4 
d[3] := 30.4 
d[4] := 40.2 

Maximum := Max(a, b, c, d) 
// Maximum = 40.2
```

#### Example 

```visualbasic
Var a As Time := 3:20 
Var b As Time := 2:50.5 
Var Maximum As Time 

Maximum := Max(a, b) 
// Maximum = 3:20
```

# Min

The operator returns the smaller of <u>[ParamArray](https://cue.atlassian.net/wiki/spaces/CVCHELP/pages/509149361)</u> values. The values can be numerical <u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u>, <u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u>, <u>[Double](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Double)</u> (first syntax), or <u>[Time](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Time)</u> (second syntax). Items of the ParamArray can be Arrays as well (second example). 

#### Syntax of numerical types 

```visualbasic
Min(ParamArray) As Double
```

#### Syntax of Time type 

```visualbasic
Min(ParamArray) As Time
```

#### Example 

```visualbasic
Var a As Long := 3 
Var b As Long := 15 
Var Minimum As Double 

Minimum := Min(a, b) 
// Minimum = 3.0
```

#### Example 

```visualbasic
Var a As Long := 3 
Var b As Long := 15 
Var c As Double := - 5.6 
Var d[4] As Double 
Var Minimum As Double 

d[1] := -20.2 
d[2] := -10.4 
d[3] := 30.4 
d[4] := 40.2 

Minimum := Min(a, b, c, d) 
// Minimum = -20.2
```

#### Example 

```visualbasic
Var a As Time := 3:20 
Var b As Time := 2:50.5 
Var Minimum As Time 

Minimum := Min(a, b) 
// Minimum = 2:50.5
```

# Mod

The operator divides two numbers and returns only the remainder. 

#### Syntax 

```visualbasic
Result := Expression1 Mod Expression2
```

#### Example 

```visualbasic
Var a As Long := 15 
Var b As Long := 4 
Var c As Long 

c := a Mod b 
// c = 3
```