Formatierte Ausgabe - wissenschaftliche Notation

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lebostein
User
Beiträge: 9
Registriert: Freitag 4. August 2006, 09:03

Dienstag 15. August 2006, 15:03

Hi,

auf folgender Seite hab ich ein paar Informationen gefunden:
http://blatt.htu.tugraz.at/grundlagen/? ... dio-printf

Ich möchte eine Zahl in wissenschaftlicher Notation ausgeben lassen. Folgendes Beispiel:

Code: Alles auswählen

print '%14.6E' % 0.005
Hier wird die "0.005" als " 5.000000E-003" ausgegeben, d.h. die Zahl ist insgesamt 14 Zeichen breit (Ziffer vor dem Punkt) und die Anzahl der Stellen nach dem Komma beträgt 6 (Ziffer nach dem Punkt). Wie kann ich aber die Stellen nach dem 'E' steuern, zum Beispiel wenn ich dort nur 2 anstatt 3 Ziffern brauche: " 5.000000E-03"?
BlackJack

Dienstag 15. August 2006, 15:35

Bei mir werden nur 2 Ziffern für den Exponenten ausgegeben.

Code: Alles auswählen

In [40]: print '%14.6E' % 0.005
  5.000000E-03
Das lässt sich soweit ich weiss auch nicht über Formatparameter steuern.
Lebostein
User
Beiträge: 9
Registriert: Freitag 4. August 2006, 09:03

Mittwoch 16. August 2006, 09:53

BlackJack hat geschrieben:Bei mir werden nur 2 Ziffern für den Exponenten ausgegeben.
Wie kann denn das sein? Hier mit der Version 2.4.1 werden bei mir 3 Stellen ausgegeben. Da ich aber einer strengen Formatierung meiner Aus- und Eingabedaten unterliege, muss ich das irgendwie hinbekommen...

Kann es sein dass das was mit den Datentpen (Float32 bzw. Float64) zu tun hat?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Mittwoch 16. August 2006, 10:00

Das Formatieren überlässt Python der C-Bibliothek. Wenn diese also drei Exponentialziffern ausgibt, kannst du nichts daran ändern. Der Standard spezifiziert auch nur, dass der Exponent mindestens zwei Ziffern zu haben hat. Es hilft also nur manuelles Nachbearbeiten.
Antworten