Wie kann man eine Gleitkommazahl wie 293.4662543 in Python in 293.47 umwandeln?

8

Wie kann ich das Float-Ergebnis verkürzen? Ich brauche nur 2 Ziffern nach dem Punkt. Tut mir leid, ich weiß wirklich nicht, wie ich das auf Englisch besser erklären soll ...

Danke

    
Shane 12.10.2010, 12:35
quelle

7 Antworten

24

Aus dem Python-Spickzettel des Floating-Point-Führers :

%Vor%

Mit round () ist das Falsche zu tun, denn Floats sind Binärbrüche welche kann Dezimalziffern nicht genau darstellen.

Wenn Sie Berechnungen mit Dezimalziffern durchführen müssen, verwenden Sie den Decimal -Typ im Modul decimal .

    
Michael Borgwardt 12.10.2010, 12:43
quelle
13

Wenn Sie eine Zahl wünschen, verwenden Sie die Funktion round() :

%Vor%

(aber +1 für Michaels Antwort bezüglich des Typs Decimal .)

Wenn Sie eine Zeichenfolge möchten:

%Vor%     
RichieHindle 12.10.2010 12:38
quelle
5

Von:   Python-Dokumente rund (x [, n]) Geben Sie den Fließkommawert x auf n Nachkommastellen gerundet zurück. Wenn n weggelassen wird, wird standardmäßig Null verwendet. Das Ergebnis ist eine Gleitkommazahl. Werte werden auf das nächste Vielfache von 10 zur Potenz minus n gerundet; Wenn zwei Vielfache gleich sind, wird das Runden von 0 weg gemacht (also zum Beispiel, Runde (0.5) ist 1.0 und Runde (-0.5) ist -1.0).

Hinweis Das Verhalten von round () für Gleitkommazahlen kann überraschend sein: Beispiel: Runde (2.675, 2) ergibt 2.67 anstelle der erwarteten 2.68. Dies ist kein Fehler: Es ist ein Ergebnis der Tatsache, dass die meisten Dezimalbrüche nicht genau als ein Float dargestellt werden können. Weitere Informationen finden Sie unter Gleitkommaarithmetik: Probleme und Einschränkungen.

Sieht nach Runde aus (293.466 .... [, 2]) würde es tun,

    
onaclov2000 12.10.2010 12:38
quelle
2
%Vor%     
ghostdog74 12.10.2010 12:38
quelle
2

x = round(293.4662543, 2)

    
Ethan Shepherd 12.10.2010 12:38
quelle
0

Wenn Sie Zahlen wie 2.3k oder 12M benötigen, erledigt diese Funktion folgende Aufgabe:

%Vor%

Ergebnisse:

%Vor%     
chribsen 06.01.2017 16:31
quelle
0

Ich hoffe, das wird helfen.

%Vor%

Ergebnis:

%Vor%     
Xavi Martínez 19.02.2018 23:21
quelle

Tags und Links