Wie kann eine Eingabe wie 315.15321531321 abgeschnitten werden? Ich möchte alle Werte nach der Hundertstelstelle abschneiden, so dass es 315,15 wird.
Wie kann ich das tun?
Wie kann eine Eingabe wie 315.15321531321 abgeschnitten werden? Ich möchte alle Werte nach der Hundertstelstelle abschneiden, so dass es 315,15 wird.
Wie kann ich das tun?
String-Formatierung unter Python 2.x sollte es für Sie tun:
>>> print '%.2f' % 315.15321531321
315.15
Dadurch wird die Darstellung der Zeichenkette auf nur 2 Dezimalstellen begrenzt. Beachten Sie, dass Sie bei der Verwendung von round(315.153215, 2)
erhalten Sie einen weiteren Fließkommawert, der natürlich ungenau ist (oder übergenau, je nachdem, wie Sie es betrachten):
>>> round(315.15321531321, 2)
315.14999999999998
Technisch gesehen, round()
ist korrekt, aber es "kürzt" die Ergebnisse nicht ab, wie Sie es unter 315.15
. Wenn Sie außerdem einen Wert wie 315,157 runden, ergibt sich etwas, das näher an 315,16 liegt... Ich bin nicht sicher, ob Sie das mit "abschneiden" meinen.
Es sieht so aus, als ob print "%.2f" auch die Rundung übernimmt. Hier ist Python-Code, der rundet und abschneidet
num = 315.15627
print("rounded = %.2f" % num)
print("truncated = %.2f" % (int(num*100)/float(100)))
print(f'rounded = {num:.2f}')
print(f'truncated = {int(num*100)/float(100):.2f}')
**Outputs**
rounded = 315.16
truncated = 315.15
rounded = 315.16
truncated = 315.15
Wenn Sie mit Währungsbeträgen arbeiten, empfehle ich Ihnen dringend, stattdessen die Dezimalklasse von Python zu verwenden: http://docs.python.org/library/decimal.html
Vielleicht hilft Ihnen das weiter:
a=315.15321531321
a=a*100
a=int(a)
a=a/100.0
print(a)
315.15
Erläuterung: Wenn Sie auf die zweite Dezimalstelle runden wollen, sollten Sie dies tun:
1. Multiplizieren Sie Ihre Zahl mit 100; dies ergibt 31515.321531321,
2. diese neue Zahl in eine ganze Zahl umwandeln; int(31515.321531321) ergibt 31515,
3. Teilen Sie dies durch 100,0; 31515/100,0,
4. und Sie erhalten die richtige Antwort; 315.15
Viel Spaß!
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.