2016-07-12 8 views
1

ich mit wirklich kleinen Werten arbeiten bin derzeit zu schreiben und wenn ich versuche, einen Wert wie -,000212683575 in einer Datei zu schreiben, schreib mir - 2.12683575d-04. Das Problem ist, dass ich möchte diesen Wert -0.000212683575 in der Datei oder mindestens dieser -0.00021268 geschrieben haben, wenn es zu viele Zahlen gibt.Wie realen Wert des -2.12683575e-04 in einer Datei (Python)

Wie könnte ich das tun?

ich Python 2.7

Sie

+2

Was haben Sie bisher versucht? Was meinst du mit "wirklicher Wert"? – Li357

+1

'-2.000012683575! = -2.12683575e-04'! –

+0

Was ich mit realem Wert meine, ist ** - 0,00021268357 ** statt ** - 2.12683575e-04 ** in eine Datei zu schreiben. Wenn ich etwas wie 'file.write (str (number))' versuche, wird es in meine Datei schreiben ** - 2.12683575e-04 ** –

Antwort

2

In Python können Sie Formate auswählen. Zum Beispiel ergibt dies die wissenschaftliche Notation, die Sie nicht wollen:

>>> x = -0.00021268357 
>>> '{:.2e}'.format(x) 
'-2.13e-04' 

Aber das Format, um die Dezimalnotation gibt, die Sie bevorzugen:

>>> '{:.9f}'.format(x) 
'-0.000212684' 

Wir diese Formate verwenden können, wenn wir schreiben eine Datei:

>>> with open('output', 'w') as f: 
...  f.write('{:.9f}'.format(x)) 
... 
>>> open('output').read() 
'-0.000212684' 

Sie über die format Methode lesen können, und all seinen komplexen und leistungsfähigen Funktionen, here.

Python bietet auch printf Stil Formatierung. Zum Beispiel:

>>> '%f' % x 
'-0.000213' 
>>> '%e' % x 
'-2.126836e-04' 
0

Während eine Nummer in einer Datei zu schreiben, Vielen Dank, dass Sie es als String schreiben und es wird alles was Sie brauchen. Beispiel:

>>> num = -0.000212683575 
>>> f = open("a.txt","w") 
>>> f.write(str(num)) 
>>> f.close() 
>>> open("a.txt","r").read() 
'-0.000212683575' 
>>> 
+0

Ich habe versucht, aber in meinem Fall hat das nicht funktioniert. Aber John1024 Lösung hat funktioniert! Übrigens, vielen Dank für Ihre Hilfe –

Verwandte Themen