formatter un float sur 12 character
bonjour,
Je n'ai pas trouvé de solution simple pour écrire un flottant sur 12 caractères avec la meilleur précision.
voici un petit exemple:
Code:
1 2 3 4
| nc = 12
>>> val = 1186212.1987987928
>>> '{0:12.8f}'.format(val)
'1186212.19879879' |
pourquoi il ne respecte par la largeur que je lui donne?
même si je ne précise pas la précision :
Code:
1 2
| >>> '{0:12f}'.format(val)
'1186212.198799' |
on dirait que le largeur qu'on fournit est considérée comme largeur minimum...
Je ne trouve pas ça logique. Y'a quelque chose que j'ai pas compris?
la solution que j'ai trouvée est la suivante:
Code:
1 2 3
|
>>> '{0:+{whith}.{precision}f}'.format(val,whith = nc, precision = nc-int(math.log10(val))-3)
'+1186212.199' |
Je suis contraint de rester sur 12 caractères car je doit rester compatible d'un vieux code fortran qui lit par paquet de 12...
Si quelqu'un a un meilleur solution, je suis preneur.
Merci