Back to Main Site

Contents

Filter Reference

Number Filters

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

abs

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

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

at_least

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

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

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

{{ 10.23 | ceil }}
11

divided_by

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

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

{{ 3.3 | floor }}
3

minus

Subtracts the first argument from the input.

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

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

Adds the input and the argument.

{{ 10.1 | plus:5.3 }}
15.4

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

Multiples the input by the first argument.

{{ 1.5 | times:2.5 }}
3.75