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.