Jinja2 Rundfilter nicht gerundet

8

Ich habe den folgenden Code in meiner Vorlage:

%Vor%

Ich erwarte Daten auf 1 Dezimalstelle gerundet. Wenn ich jedoch die Seite oder Quelle anschaue, ist dies die Ausgabe, die ich erhalte:

%Vor%

Dies wird nicht auf 1 Dezimalstelle gerundet. Es läuft ohne Vorlagefehler oder irgendetwas, aber produziert falsche Ausgabe. Mein Verständnis ​​aus der Dokumentation und sogar eine verwandte stack overflow frage , dass mein Format funktionieren sollte. Was vermisse ich oder mache ich falsch?

    
Mittenchops 30.07.2013, 21:14
quelle

4 Antworten

7

Hatte nicht realisiert, dass der Filteroperator Vorrang vor der Multiplikation hatte!

Nach bernies Kommentar wechselte ich

%Vor%

bis

%Vor%

was das Problem gelöst hat. Ich stimme zu, dass die Verarbeitung an anderer Stelle im Code erfolgen sollte, und das wäre eine bessere Vorgehensweise.

    
Mittenchops 30.07.2013, 21:24
quelle
19

Sie können Parens um den Wert herum platzieren, den Sie runden möchten. (Dies funktioniert auch im Gegensatz zu dem, was @sobri geschrieben hat.)

%Vor%

HINWEIS: round gibt float zurück, wenn Sie wirklich int wollen, müssen Sie den Wert auch über diesen Filter übergeben.

%Vor%     
John R 26.09.2013 20:38
quelle
1

Ich lief über diese ... benötigt int (mem_total / 4) in Jinja. Ich habe es gelöst, indem ich zwei Operationen gemacht habe:

%Vor%     
Dan Garthwaite 02.02.2016 16:01
quelle
0

Versuchen Sie es

%Vor%

Wenn wir nicht runde Klammern setzen, geht das nur bis 100 nicht zum Ergebnis.

    
Siya Diya 14.03.2018 08:34
quelle