Bug #85337
le filtre decimal:0 ne renvoit pas un entier
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
05 janvier 2024
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Dans l'inspecteur, form_var_mavar|decimal:0 == 0
renvoie faux alors que form_var_mavar vaut 0.25
et je me retrouve à faire
form_var_rfr_api|divide:form_var_nb_parts_api|decimal:0|decimal == 0
pour avoir une condition vraie, ce qui est un peu crade. Je m'attends à ce que qu'un nombre sur lequel je passe |decimal:0 pour en faire en entier renvoie un entier.
Pour reproduire dans n'importe quel inspect :
{% with tmp=0.2 %}{{ tmp|decimal:0 }} {% if tmp|decimal:0 == 0 %}entier{% else %}pas un entier{% endif %} {% endwith %}
Historique
Mis à jour par Frédéric Péters il y a 4 mois
- Statut changé de Nouveau à Fermé
Oui |decimal passé avec un paramètre a une autre signification, il fait la conversion en une chaine représentant le nombre, avec autant de chiffres derrière la virgule que demandé par le paramètre. C'est décrit ainsi dans la documentation :
Attention,
form_var_tarif|decimal:2
donne un nombre à 2 chiffres après la virgule mais ne transforme pas form_var_tarif en nombre.
Si tu veux le nombre arrondi à l'entier inférieur, il faut utiliser |floor.
Mis à jour par Anaïs Ecuvillon → en congés, retour le 30/04 il y a 4 mois
je passe par là et je réponds, mais vraiment pas sûre de mon coup, est-ce que tu pourrais utiliser le filtre :
xxx|floor --> nombre entier directement inférieur ou égal à xxx