# Numbers

There are two numeric types: integer and float.

## Literals​

### `42`​

Integers are whole numbers without a decimal part. The `_` character can be used to separate groups for legibility.

``{{ 42 / 123_456 }}``

### `42.1e2`​

Floating point numbers can be written using a `.` as a decimal mark. They can also be written in scientific notation with an upper or lower case `e` to indicate the exponent part. The `_` character can be used to separate groups for legibility, but cannot be used in the exponent part.

``{{ 42.23 / 42.1e2 / 123_456.789 }}``

## Constructors​

### `any|int`​

Convert the value into an integer.

#### Parameters​

• `default` - The value to return when conversion doesn’t work (default=0).
• `base` - Overrides the default base (10), which handles input with prefixes such as 0b, 0o and 0x for bases 2, 8 and 16 respectively.

#### Examples​

``{{ "2"|int + 2 }}-> 4{{ "0xFF"|int(base = 16) }}255``

### `any|float`​

Convert the value into a floating point number.

#### Parameters​

• `default` - The value to return when conversion doesn’t work (default=0.0).

#### Examples​

``{{ "1.1"|float + "0.5"|float }}-> 1.6``

## Operators:​

### `+``-``*``/``//``%``*``**`​

• `{{ 1 + 1 }} -> 2` - Add two numbers.
• `{{ 3 - 2 }} -> 1` - Subtract the second number from the first one.
• `{{ 1 / 2 }} -> 0.5` - Divide two numbers. The return value will be a floating point number.
• `{{ 20 // 7 }} -> 2` - Divide two numbers and return the truncated integer result.
• `{{ 11 % 7 }} -> 4` - Calculate the remainder of an integer division.
• `{{ 2 * 2 }} -> 4` - Multiply the left operand with the right one.
• `{{ 2**3 }} -> 8` - Raise the left operand to the power of the right operand.

## Tests​

### `x is divisibleby`​

Check if a variable is divisible by a number.

#### Parameters​

• `num` - The number by which we divide.

#### Examples​

``{{ 12 is divisibleby 4 }}-> true{{ 11 is divisibleby 3 }}-> false``

### `x is even`​

Return true if the variable is even.

#### Examples​

``{{ 12 is even}}-> true{{ 11 is even }}-> false``

### `x is float`​

Return true if the object is a float.

#### Examples​

``{{ 12 is float}}-> false{{ 12.0 is float }}-> true``

### `x is integer`​

Return true if the object is a integer.

#### Examples​

``{{ 12 is integer}}-> true{{ 12.0 is integer }}-> false``

### `x is number`​

Return true if the object is a number.

#### Examples​

``{{ 12 is number}}-> true{{ 12.0 is number }}-> true{{ "12" is number }}-> false``

### `x is odd`​

Return true if the number is odd.

#### Examples​

``{{ 11 is odd}}-> true{{ 12 is odd }}-> false``

## Filters​

### `number|abs`​

Return the absolute value of the argument.

### `number|filesizeformat`​

Format the value like a ‘human-readable’ file size (i.e. 13 kB, 4.1 MB, 102 Bytes, etc).

#### Parameters​

• `binary` - Per default decimal prefixes are used (Mega, Giga, etc.), if the parameter is set to true the binary prefixes are used (Mebi, Gibi).

### `number|round`​

Round the number to a given precision.

#### Parameters​

• `precision` - Specifies the precision (default is 0).
• `method` - Specifies the method (default is common):
• 'common' - rounds either up or down;
• 'floor' - always rounds down;
• 'ceil' - always rounds up.

#### Examples​

``{{ 42.55|round }}-> 43.0{{ 42.55|round(1, 'floor') }}-> 42.5``

Note that even if rounded to 0 precision, a float is returned. If you need a real integer, pipe it through int:

``{{ 42.55|round|int }}-> 43``