yq/pkg/yqlib/doc/operators/modulo.md
2023-05-09 13:51:21 +10:00

1.0 KiB

Modulo

Arithmetic modulo operator, returns the remainder from dividing two numbers.

Number modulo - int

If the lhs and rhs are ints then the expression will be calculated with ints.

Given a sample.yml file of:

{a: 13, b: 2}

then

yq '.a = .a % .b' sample.yml

will output

{a: 1, b: 2}

Number modulo - float

If the lhs or rhs are floats then the expression will be calculated with floats.

Given a sample.yml file of:

{a: 12, b: 2.5}

then

yq '.a = .a % .b' sample.yml

will output

{a: !!float 2, b: 2.5}

Number modulo - int by zero

If the lhs is an int and rhs is a 0 the result is an error.

Given a sample.yml file of:

{a: 1, b: 0}

then

yq '.a = .a % .b' sample.yml

will output

Error: cannot modulo by 0

Number modulo - float by zero

If the lhs is a float and rhs is a 0 the result is NaN.

Given a sample.yml file of:

{a: 1.1, b: 0}

then

yq '.a = .a % .b' sample.yml

will output

{a: !!float NaN, b: 0}