Ich habe ein Django Queryset-Objekt namens data
mit String-Schlüssel und Float-Werte.Django/Python Convert Float während Listenverstehen
Ich möchte alle Floats auf 2 Dezimalstellen konvertieren.
Wenn ich dies tun:
>>> param1_values = [d[param1] for d in data]
>>> param1_values[:5]
[26.1, 24.6, 26.2444444444444, 27.3103448275862, 26.7576923076923]
... was in Ordnung ist, aber ich muss auf zwei Dezimalstellen schweben. Jedoch
, wenn ich dies tun:
>>> param1_values = ["%.2f" % d['mean_air_temp'] for d in data]
>>> param1_values[:5]
['26.10', '24.60', '26.24', '27.31', '26.76']
Die Zahlen sind, was ich wollte, aber sie sind in Strings umgewandelt! Warum passiert das und wie löse ich es?
Jede Hilfe wird geschätzt.
Was möchten Sie erreichen? Welchen Zweck hat es, die Zahlen in gerundeter Form zu speichern? –
In Antwort auf Ihre andere Frage, * Warum tritt das auf? *, Tritt auf, weil, wenn das erste Argument zum '%' -Operator eine Zeichenkette ist (''% .2f'') das Ergebnis immer eine Zeichenkette, ähnlich Wie in einer anderen Sprache könnten Sie 'printf' verwenden. – kojiro