Liebe Forumsteilnehmer,
wahrscheinlich stelle ich eine für Experten sehr einfache Frage, die ich trotz intensiver Suche nicht aus Handbuch und Internet beantworten kann.
In PASCAL gibt es eine Konvertierungsfunktion Str(x:1:2), die ein float x mit minimalen Gesamtstellen und 2 Nachkommastellen darstellt. Ich weiß, wie man das in Python macht. Ich weiß aber nicht, wie für die Nachkommastellen eine Variable, z.B. ns, eingesetzt werden kann, dh. die Nachkommastellen soll man berechnen können. In PASCAL ging das ganz einfach über Str(x:1:ns).
Viele Grüße
Klaus Merkert
float --> str mit variablen Nachkommastellen
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Stichwort Stringformatting.
http://docs.python.org/library/string.h ... formatting
http://docs.python.org/library/stdtypes ... formatting
http://docs.python.org/library/string.h ... formatting
http://docs.python.org/library/stdtypes ... formatting
-
- User
- Beiträge: 22
- Registriert: Freitag 22. Mai 2009, 11:16
Lieber User cofi,
ich habe sehr wohl die angegebene Dokumentation gelesen. Es gibt für mich dabei zwei Probleme:
1. ich benutze Python 2.5
2. ich habe keine Lösung für mein Problem erkannt (was habe ich übersehen?)
Ich wiederhole also meine Bitte um eine Lösung meines Beispiels.
Viele Grüße
Klaus Merkert
ich habe sehr wohl die angegebene Dokumentation gelesen. Es gibt für mich dabei zwei Probleme:
1. ich benutze Python 2.5
2. ich habe keine Lösung für mein Problem erkannt (was habe ich übersehen?)
Ich wiederhole also meine Bitte um eine Lösung meines Beispiels.
Viele Grüße
Klaus Merkert
Code: Alles auswählen
"%10.3f" % 3.14159
Das Leben ist wie ein Tennisball.
-
- User
- Beiträge: 22
- Registriert: Freitag 22. Mai 2009, 11:16
Das ist nicht mein Problem. In dem angegebenen Beispiel sind 3 Nachkommastellen fest vorgegeben. Ich möchte aber statt der 3 eine Variable, z.B. ns stehen haben.
Viele Grüße
Klaus Merkert
Viele Grüße
Klaus Merkert
Das bisschen Abstraktion kann man aber schon erwarten:
Code: Alles auswählen
"%%%d.%df" % (10, 3) % 3.14159
Das Leben ist wie ein Tennisball.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Demnach:6.6.2 String Formatting Options hat geschrieben:Precision (optional), given as a '.' (dot) followed by the precision. If specified as '*' (an asterisk), the actual width is read from the next element of the tuple in values, and the value to convert comes after the precision.
Code: Alles auswählen
In [1]: "%1.*f" % (4, 3.14156)
Out[1]: '3.1416'
-
- User
- Beiträge: 22
- Registriert: Freitag 22. Mai 2009, 11:16
Vielen herzlichen Dank,
das ist es, was ich brauche
Es tut mir leid, dass ich es überlesen habe.
Viele Grüße
Klaus Merkert
das ist es, was ich brauche
Code: Alles auswählen
>>> ns=2
>>> "%1.*f" % (ns,3.14159)
'3.14'
Viele Grüße
Klaus Merkert
Das muss dir ja nicht Leid tun, aber man kann schon erwarten, dass jemand länger als 11 Minuten Dokumentation liest, etwas googlet und ausprobiertKlausMerkert hat geschrieben:Es tut mir leid, dass ich es überlesen habe.
Das Leben ist wie ein Tennisball.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Da ist natürlich was dranEyDu hat geschrieben:Ich fände es seltsam, wenn nicht gerundet werden würde. Andernfalls geht Genauigkeit verloren.cofi hat geschrieben:Nur seltsam, dass er rundet oO
Nicht schlimm Der Satz versteckt sich aber auch hinterhältig mitten in der Aufzählung.KlausMerkert hat geschrieben:Es tut mir leid, dass ich es überlesen habe.