Project

General

Profile

Bug #85337

le filtre decimal:0 ne renvoit pas un entier

Added by Marie Kuntz about 1 year ago. Updated about 1 year ago.

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

#2

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.

#3

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

Updated by Marie Kuntz about 1 year ago

Ok, merci à vous 2

Also available in: Atom PDF