Lange Zahlen in anderes Format umwandeln

Code-Stücke können hier veröffentlicht werden.
Antworten
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Hallo ihr Lieben und im Voraus erst mal frohe Weihnachten!

Nun zu meinem Anliegen:
Gehen wir davon aus, dass ich eine Zahl mit ca. 100 Nachkommastellen habe. Nun würde ich die Zahl gerne ausgeben, aber nicht unbedingt in ihrer kompletten Länge. Es gibt ja die Schreibweise 5.3e12 zum Beispiel.
Wie kann ich nun meine ziemlich lange Zahl in ein solches Format umwandeln?

Liebe Grüße
TimeMen
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

Code: Alles auswählen

print("{:.1e}".format(float(zahl))
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Hallo Sirius,

funktioniert soweit, allerdings bekomme ich bei manchen Zahlen dann ausgegeben.
Woran liegt das?
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@TimeMen: dann haben Deine Zahlen doch mehr als 100 Stellen. Denn ab 308 Stellen sind sie nicht mehr als float darstellbar. Wie liegen denn Deine Zahlen vor?

Code: Alles auswählen

from decimal import Decimal
print("{:.1e}".format(Decimal(zahl))
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Meine Zahlen haben je nach Aufgabe mehr als Tausend Stellen.
Dein Code funktioniert, danke :)
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
Antworten