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