Comment puis-je afficher ceci :
Décimal('40800000000.000000000000000') comme '4.08E+10' ?
J'ai essayé ceci :
>>> '%E' % Decimal('40800000000.00000000000000')
'4.080000E+10'
Mais il a ces 0 supplémentaires.
Comment puis-je afficher ceci :
Décimal('40800000000.000000000000000') comme '4.08E+10' ?
J'ai essayé ceci :
>>> '%E' % Decimal('40800000000.00000000000000')
'4.080000E+10'
Mais il a ces 0 supplémentaires.
from decimal import Decimal
'%.2E' % Decimal('40800000000.00000000000000')
# returns '4.08E+10'
Dans votre '40800000000.000000000000000', il y a beaucoup plus de zéros significatifs qui ont la même signification que n'importe quel autre chiffre. C'est pourquoi vous devez dire explicitement où vous voulez vous arrêter.
Si vous souhaitez supprimer automatiquement tous les zéros à droite, vous pouvez essayer :
def format_e(n):
a = '%E' % n
return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1]
format_e(Decimal('40800000000.00000000000000'))
# '4.08E+10'
format_e(Decimal('40000000000.00000000000000'))
# '4E+10'
format_e(Decimal('40812300000.00000000000000'))
# '4.08123E+10'
Consultez les tableaux du formatage de chaîne Python pour sélectionner la disposition de format appropriée. Dans votre cas, c'est %.2E
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.