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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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