# Number Filters

These are provided in the default filters. Specifically, when `TemplateOptions` is constructed, these are added via the extension method `WithNumberFilters`.

Contents

## abs

`NumberFilters.Abs`

Returns the absolute value – the distance from zero – for the input number.

``````{{ -50 | abs }}
{{ 50 | abs }}``````
``````50
50``````

## at_least

`NumberFilters.AtLeast`

Returns the greater of the input and first argument. The exact opposite of `at_most`.

``````{{ 10 | at_least:20 }}
{{ 30 | at_least:20 }}``````
``````20
30``````

## at_most

`NumberFilters.AtMost`

Returns the lesser of the input and first argument. The exact opposite of `at_least`.

``````{{ 10 | at_most:20 }}
{{ 30 | at_most:20 }}``````
``````10
20``````

## ceil

`NumberFilters.Ceil`

The input number, rounded up to the next integer. (Remember, a `NumberValue` is a `decimal` internally.)

``{{ 10.23 | ceil }}``
``11``

## divided_by

`NumberFilters.DividedBy`

Divides the input by the argument.

If the argument is an integer, the result is reduced to the nearest integer. (This is a duplicated quirk of the original Liquid.)

``````{{ 10 | divided_by:2 }}
{{ 10 | divided_by:3 }}``````
``````5
3``````

To get a decimal back (a non-rounded result), you need to pass in a decimal.

``{{ 10 | divided_by:3.0 }}``
``3.3333333333333333333333333333``

## floor

`NumberFilters.Floor`

Reduces a decimal to the nearest smaller integer. (Note that `NumberValue` still wraps a `decimal` internally.)

``{{ 3.3 | floor }}``
``3``

## minus

`NumberFilters.Minus`

Subtracts the first argument from the input.

``````{{ 10 | minus:5 }}
{{ 10.1 | minus:5.3 }}``````
``````5
4.8``````

## modulo

`NumberFilters.Modulo`

Divides the input by the first argument and returns the remainder.

Both the input and the argument have to be integers (this isn’t a Liquid rule, this is a math rule). They will be converted to integers via `Convert.ToInt32`, so if you attempt to perform the operation on a decimal argument that converts to zero, you will get a “Attempted to divide by zero” error.

``{{ 10 | modulo:3 }}``
``1``

(If you think you’ll be checking for multiples often, there’s an example of a custom `ismultipleof` operator in the chapter on conditionals).

## plus

`NumberFilters.Plus`

Adds the input and the argument.

``{{ 10.1 | plus:5.3 }}``
``15.4``

## round

`NumberFilters.Round`

Rounds the input. Values at `.5` round up. Takes an optional parameter for the number of decimal places. Defaults to 0.

``````{{ 1.1 | round }}
{{ 1.49 | round }}
{{ 1.5 | round }}
{{ 1.617 | round:2 }}``````
``````1
1
2
1.62``````

## times

`NumberFilters.Times`

Multiples the input by the first argument.

``{{ 1.5 | times:2.5 }}``
``3.75``

This is item #4 in a sequence of 5 items.

You can use your left/right arrow keys to navigate