CUE supports common arithmetic and boolean operators, which apply to its numerical types int, float, and number. Some of these operators also apply to the string and bytes types.

CUE provides three different division operations. To produce a float, CUE supports the infix / operator with the standard mathematical meaning. Arguments can be float, int, or a mixture of the two. CUE also provides built-in functions that produce an int by calculating integer division and remainder. They support Euclidean division (div / mod) and truncated division (quo / rem).

operators.cue
a: 1 + 1             // type int
b: "XXX" + "OOO"     // type string
c: 2 * 2             // type int
d: 2 * 2.0           // type float
e: 3.14159 - 0.14159 // type float

f: 6 / 2     // type: float
g: 6.0 / 2.0 // type: float

h: 1 <= 2.0 // type bool
i: 3.0 > 3  // type bool
// String types are compared lexically byte-wise
j: "aaa" >= "ZZZ" // type bool

k: div(10, 3) // type int
l: mod(10, 3) // type int
TERMINAL
$ cue eval operators.cue
a: 2
b: "XXXOOO"
c: 4
d: 4.0
e: 3.00000
f: 3.0
g: 3.0
h: true
i: false
j: true
k: 3
l: 1

The CUE languge specification details the operator precedence levels.