Faire des calculs
Dernière mise à jour le 13 mai 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.