Formatierung Schwimmer in Python ohne nachfolgende Nullen

Wie kann ich das format ein float, so dass es nicht enthalten nachfolgende Nullen? In anderen Worten, ich möchte die resultierende Zeichenfolge so kurz wie möglich.

Beispiel:

3 -> "3"
3. -> "3"
3.0 -> "3"
3.1 -> "3.1"
3.14 -> "3.14"
3.140 -> "3.14"
  • Das Beispiel macht keinen Sinn. 3.14 == 3.140 - Sie sind die gleiche floating-point-Zahl. Für diese Angelegenheit 3.140000 ist die gleiche floating-point-Zahl. Die null existiert nicht in den ersten Platz.
  • Ich denke, das Problem ist der DRUCK der float-Zahl ohne Nullen, nicht die tatsächliche äquivalenz der beiden zahlen.
  • In dem Fall, es gibt keine "überflüssigen" null. %0.2f und %0.3f sind die beiden Formate zu produzieren, die letzten zahlen auf der linken Seite. Verwenden %0.2f zu produzieren, die letzten beiden zahlen auf der rechten Seite.
  • 3.0 -> "3" ist immer noch ein Gültiger Anwendungsfall. print( '{:,g}'.format( X ) bei mir funktioniert die Ausgabe 3 wo X = 6 / 2 und wenn X = 5 / 2 bekam ich eine Ausgabe von 2.5 als erwartet.
  • alte Frage, aber.. print("%s"%3.140) gibt Ihnen, was Sie wollen. (Ich fügte hinzu, eine Antwort unten siehe unten...)
InformationsquelleAutor TarGz | 2010-03-14
Schreibe einen Kommentar