Wie kann ich das anzeigen:
Dezimal ('40800000000.00000000000000') als '4.08E + 10'?
Ich habe das versucht:
>>> '%E' % Decimal('40800000000.00000000000000')
'4.080000E+10'
Aber es hat diese zusätzlichen Nullen.
Wie kann ich das anzeigen:
Dezimal ('40800000000.00000000000000') als '4.08E + 10'?
Ich habe das versucht:
>>> '%E' % Decimal('40800000000.00000000000000')
'4.080000E+10'
Aber es hat diese zusätzlichen Nullen.
Antworten:
In Ihrem '40800000000.00000000000000' gibt es viel mehr signifikante Nullen, die dieselbe Bedeutung wie jede andere Ziffer haben. Deshalb müssen Sie explizit angeben, wo Sie aufhören möchten.
Wenn Sie alle nachgestellten Nullen automatisch entfernen möchten, können Sie Folgendes versuchen:
quelle
format % values
Syntax auch in der Python 3-Standardbibliothek noch verwendet wird, glaube ich, dass sie in Python 3 technisch veraltet ist oder zumindest nicht die empfohlene Formatierungsmethode, und die derzeit empfohlene Syntax, beginnend mit Python 2.6, wäre'{0:.2E}'.format(Decimal('40800000000.00000000000000'))
( oder'{:.2E}'
in Python 2.7+). Obwohl dies für diese Situation nicht unbedingt nützlich ist, ermöglicht es aufgrund der zusätzlichen Zeichen für keine zusätzliche Funktionalität einstr.format
komplexeres Mischen / Neuanordnen / Wiederverwenden von Formatargumenten.format
. Es ist jazziger .Hier ist ein Beispiel mit der
format()
Funktion:Anstelle des Formats können Sie auch F-Strings verwenden :
offizielle Dokumentation
Vorschlag für das Originalformat ()
quelle
f"{Decimal('40800000000.00000000000000'):.2E}"
Geben Sie Ihre Nummer an
Ab Python 3,
ist der empfohlene Weg, dies zu tun.
e
bedeutet, dass Sie eine wissenschaftliche Notation wünschen und.2
dass Sie 2 Ziffern nach dem Punkt möchten. So wirst du bekommenx.xxE±n
quelle
float(x)
konvertiert gerade x in float.Niemand erwähnte die Kurzform der
.format
Methode:Benötigt mindestens Python 3.6
(Ich glaube, es ist das gleiche wie Cees Timmerman, nur ein bisschen kürzer)
quelle
{num:E}
kontrollierenInformationen zur Auswahl des richtigen Formatlayouts finden Sie in den Tabellen aus der Python-Zeichenfolgenformatierung . In deinem Fall ist es
%.2E
.quelle
Meine Dezimalstellen sind zu groß,
%E
deshalb musste ich improvisieren:Hier ist ein Beispiel für die Verwendung:
quelle
"{:.2e}".format(n)
kehrt'3.39e+7800'
in Python 3.3.2 (V3.3.2: d047928ae3f6, 16. Mai 2013, 00.06.53) [MSC v.1600 64 Bit (AMD64)] auf win32.Das hat bei mir am besten funktioniert:
quelle
Dies ist eine konsolidierte Liste der "einfachen" Antworten und Kommentare.
PYTHON 3
Oder ohne
IMPORT
‚sVergleichen
Für Python 3 können Sie also vorerst zwischen den drei wechseln.
Mein Favorit:
quelle
Ich bevorzuge Python 3.x Weg.
4
Gibt an, wie viele Ziffern im schwebenden Teil angezeigt werden.quelle
Um eine Dezimalzahl in eine wissenschaftliche Notation umzuwandeln, ohne die Genauigkeit in der Formatzeichenfolge angeben zu müssen und ohne nachgestellte Nullen einzuschließen, verwende ich derzeit
Um nachgestellte Nullen beizubehalten, entfernen Sie einfach die
normalize()
.quelle
Hier ist die einfachste, die ich finden konnte.
('E' unterscheidet nicht zwischen Groß- und Kleinschreibung. Sie können auch '.2e' verwenden.)
quelle
quelle