Ist es in Python möglich, Floats wie 2 * 10^-3 anstelle von 2e-3 zu drucken?Anzeige 2e-3 als 2 * 10^-3 in Python
s = str(2e-3)
s.replace("e","*10^")
hat nicht funktioniert.
Ist es in Python möglich, Floats wie 2 * 10^-3 anstelle von 2e-3 zu drucken?Anzeige 2e-3 als 2 * 10^-3 in Python
s = str(2e-3)
s.replace("e","*10^")
hat nicht funktioniert.
Der Fehler ist, dass ersetzt nicht s
ändert. So behebt s = s.replace...
alles. Schließlich sollte es einfach so aussehen, wo der Druck Teil optional ist:
s = str("2e-3")
s = s.replace("e", "*10^")
print(s)
mit dem Ausgang:
2*10^-3
Sie sagen also, dass "0.002" replace ("e", "* 10 ^") irgendwie "2 * 10^-3" erzeugt? Es tut es nicht. Ihre Antwort beantwortet nicht Ihre eigene Frage. – vaultah
Plase s = str('2e-3')
verwenden.
Für s = str(2e-3)
, ich werde 2e-3
berechnen, wird das Ergebnis ein flaot sein, dann das Ergebnis zu string
konvertieren.
Verwenden Format eine Zeichenfolge, die die Zahl in wissenschaftlicher Notation zu bekommen, und dann ersetzen 'e'
s = '{:.2e}'.format(any_number).replace("e", "*10^")
die .2
in {:.2e}
für zwei Dezimalstellen fragen also, wenn any_number==0
Sie erhalten 0,00 * 10^+ 00 und für 0,002, 2,00 * 10^-03.
Wenn Sie spezielle Fälle behandeln möchten, können Sie die formatierte Zeichenfolge in die Mantisse und Exponent Strings aufgeteilt und dann zum Beispiel, entferne eine führende ‚+‘ und Null aus dem Exponenten
ms,es='{:.2e}'.format(any_number).split('e')
if len(es)==3 and es[1]=='0': es = es[0] + es[2]
es = es.replace('+','')
s = ms + '*10^' + es
Bitte ersetzen 's = str (2e-3) 'zu' s = str ('2e-3') '. – BlackMamba
wo drucken? zur Konsole mit 'print'? – Francesco