Bug #85337
le filtre decimal:0 ne renvoit pas un entier
Status:
Fermé
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
05 January 2024
Due date:
% Done:
0%
Estimated time:
Patch proposed:
No
Planning:
No
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 %}
History
Updated by Frédéric Péters about 1 year ago
- Status changed from Nouveau to 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.
Updated by Anaïs Ecuvillon about 1 year ago
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