Projet

Général

Profil

Bug #85337

le filtre decimal:0 ne renvoit pas un entier

Ajouté par Marie Kuntz -> retour le 13 mai il y a 4 mois. Mis à jour il y a 4 mois.

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

#2

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.

#3

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
#4

Mis à jour par Marie Kuntz -> retour le 13 mai il y a 4 mois

Ok, merci à vous 2

Formats disponibles : Atom PDF