This question prosi o tłumienie notacji naukowej w python.Jak uniknąć drukowania notacji naukowej w python bez dodawania dodatkowych cyfr?
Mam serię liczb do wyświetlenia - małe moce 10 - i chciałbym wyświetlić je bez zer końcowych. To znaczy. 0.1, 0.01 i tak dalej do 0.000001
Jeśli wykonam "%s" % 10 ** -6
, otrzymam '1e-06'
. Jeśli użyję "%f" % 10 ** -6
, otrzymam '0.000001'
, czego chcę.
Jednak "%f" % 10 ** -3
daje '0.001000'
, co narusza ograniczenie "bez końcowych zer".
Nietrudno jest brutalnie wymuszać obejście tego (zastąpienie regexem lub coś podobnego), ale zastanawiam się, czy brakuje jakiejś magii napisów w formacie.
To właśnie PO, określane jako * "brutalnie wymusza naokoło" *, więc nie jest to prawdziwa odpowiedź (-1). Jednak zrobiłbym to w ten sposób (+1). –
+1. To wcale nie jest hacky. Może użycie funkcji 'format()' jest odrobinę prostsze: 'format (1e-6, 'f'). Rstrip ('0')'. –
@Oben Sonne, ale jest o wiele lepszy niż przy użyciu regex. @Ferdinand Beyer, dzięki, nie wiedziałem o tym, modyfikując odpowiedź. – utdemir