Faire des calculs

Dernière mise à jour le 23 mars 2026

Liquid n’a pas d’opérateurs mathématiques comme +, -, *, ou /. Toute l’arithmétique se fait à travers des filtres : vous passez une valeur à travers un filtre pour la transformer. Cette page présente les schémas de calcul courants dont vous aurez besoin lors de la construction de templates.

Arithmétique de base

Les quatre filtres arithmétiques fondamentaux sont plus, minus, times et divided_by. Chacun prend une valeur à gauche et un paramètre à droite :

{{ 10 | plus: 5 }}        -> 15
{{ 10 | minus: 3 }}       -> 7
{{ 10 | times: 4 }}       -> 40
{{ 10 | divided_by: 3 }}  -> 3

Exemples pratiques

Calculer le total d’une ligne de commande à partir de vos données :

{{ item.quantity | times: item.unit_price }}

Appliquer une remise de 10% :

{% assign discounted = subtotal | times: 0.9 %}
{{ discounted }}

Ajouter 20 % de TVA à un sous-total :

{{ subtotal | times: 1.20 }}

Arrondis

Trois filtres contrôlent la précision décimale :

{{ 4.6 | round }}     -> 5
{{ 4.3 | round }}     -> 4
{{ 4.123 | round: 2 }} -> 4.12

{{ 4.1 | ceil }}      -> 5
{{ 4.1 | floor }}     -> 4

La division entière tronque

Lorsque divided_by reçoit un diviseur entier, il retourne un entier tronqué (pas un résultat arrondi) :

{{ 5 | divided_by: 3 }}    -> 1  (pas 1.67)
{{ 5 | divided_by: 3.0 }}  -> 1.6666666666666667

Utilisez un diviseur décimal (comme 3.0) si vous avez besoin d’un résultat précis.

Chaîner les calculs

Les filtres peuvent être chaînés de gauche à droite. Chaque filtre reçoit le résultat du précédent :

{{ price | times: quantity | times: 1.20 | round: 2 }}

Cela multiplie price par quantity, applique 20 % de TVA, et arrondit à 2 décimales (le tout en une seule expression).

Un exemple complet de ligne de facture :

{% for item in lineItems %}
  <tr>
    <td>{{ item.product }}</td>
    <td>{{ item.quantity }}</td>
    <td>${{ item.price | with_delimiter, precision: 2 }}</td>
    <td>${{ item.price | times: item.quantity | with_delimiter, precision: 2 }}</td>
  </tr>
{% endfor %}

Formater les nombres

Les filtres arithmétiques Liquid retournent des nombres bruts. Pour les afficher correctement (séparateurs de milliers, décimales fixes, formatage sprintf), utilisez les filtres with_delimiter et format.

Pour aller plus loin

  • Filtres — référence complète de tous les filtres intégrés et spécifiques à PDFMonkey

Questions fréquentes

Comment faire des calculs dans les templates Liquid ?
Liquid n’a pas d’opérateurs mathématiques. Utilisez des filtres à la place : plus, minus, times et divided_by. Par exemple, {{ 10 | plus: 5 }} renvoie 15.
Pourquoi divided_by renvoie-t-il un résultat incorrect dans Liquid ?
Quand le diviseur est un entier, divided_by tronque le résultat en entier. Utilisez un diviseur décimal (par ex. 3.0 au lieu de 3) pour obtenir un résultat en virgule flottante précis.
Comment arrondir des nombres dans un template PDFMonkey ?
Utilisez le filtre round pour un arrondi standard ({{ 4.6 | round }} renvoie 5), ceil pour arrondir au-dessus, ou floor pour arrondir en-dessous. Passez un argument de précision pour contrôler le nombre de décimales : {{ 4.123 | round: 2 }} renvoie 4.12.