> For the complete documentation index, see [llms.txt](https://mikefarah.gitbook.io/yq/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mikefarah.gitbook.io/yq/operators/modulo.md).

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

```yaml
a: 13
b: 2
```

then

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

will output

```yaml
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:

```yaml
a: 12
b: 2.5
```

then

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

will output

```yaml
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:

```yaml
a: 1
b: 0
```

then

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

will output

```bash
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:

```yaml
a: 1.1
b: 0
```

then

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

will output

```yaml
a: !!float NaN
b: 0
```
