Drucken Sie entweder eine Ganzzahl oder ein Gleitkomma mit n Dezimalstellen

8

Wie kann man in Python eine Zahl ausgeben, die eine Ganzzahl oder einen echten Typ sein kann, wenn ich im letzteren Fall meinen Ausdruck auf eine bestimmte Anzahl von Ziffern beschränken muss?

Lange Rede, kurzer Sinn, sagen wir haben das folgende Beispiel:

%Vor%

Gibt es einen "pythischen" Weg, um z.B. im Fall num == 1 , die ich 1 anstelle von 1.000 drucke (ich meine anderes als meinen Code mit if Anweisungen zu überfluten)

    
Lorah Attkins 27.02.2017, 15:49
quelle

3 Antworten

10

Mit Python 3 * können Sie round() einfach zusätzlich zum Runden verwenden float s, wenn sie auf eine ganze Zahl angewendet wird, gibt sie immer int zurück:

%Vor%

Dieses Verhalten ist in help(float.__round__) dokumentiert:

%Vor%

Und help(int.__round__) :

%Vor%

* Mit Python 2, round() immer return s a float .

    
Chris_Rands 27.02.2017, 16:06
quelle
4

Wenn Sie eine feste Breite für Float-Werte beibehalten möchten, können Sie die printf-style Formatierung , wie folgt:

%Vor%     
ekhumoro 27.02.2017 16:39
quelle
1

Wenn Sie eine feste Anzahl von Gleitkommazahlen verwenden, können Sie einfach eine Ersetzung verwenden, um die zusätzliche 0 zu entfernen. Zum Beispiel würde dies den Trick tun:

%Vor%     
Thomas Moreau 27.02.2017 16:00
quelle