web-dev-qa-db-fra.com

Ajouter des zéros à un flottant après le point décimal en Python

Je lis des données d'un fichier, le modifie et l'écris dans un autre fichier. Le nouveau fichier sera lu par un autre programme et il est donc crucial de conserver le formatage exact.

par exemple, l'un des numéros de mon fichier d'entrée est:

1.000000

mon script applique quelques maths aux colonnes et devrait revenir

2.000000

Mais ce qui est actuellement retourné est

2.0

Comment pourrais-je écrire un float par exemple my_float = 2.0, en tant que my_float = 2.00000 dans un fichier?

16
user2015601

Formatez-le avec 6 décimales:

format(value, '.6f')

Démo:

>>> format(2.0, '.6f')
'2.000000'

La fonction format() convertit les valeurs en chaînes suivant les instructions de formatage données données.

45
Martijn Pieters

Vous trouverez ci-dessus une réponse à l'aide de la commande format (), mais vous voudrez peut-être examiner l'objet bibliothèque standard Decimal si vous utilisez des éléments flottants devant représenter une valeur exacte. Vous pouvez définir la précision et l'arrondi dans sa classe de contexte, mais par défaut, il conservera le nombre de zéros que vous y placez:

>>> import decimal
>>> x = decimal.Decimal('2.0000')
>>> x
Decimal('2.0000')
>>> print x
2.0000
>>> print "{0} is a great number.".format(x)
2.0000 is a great number.
1
chason

J'ai essayé de nombreuses façons, mais rien ne fonctionnait de la sorte. Je voulais enfin que cela fonctionne pour moi. 

foo = 56
print (format(foo, '.2f'))
print (format(foo, '.3f'))
print (format(foo, '.5f'))

output:

56.0 
56.00
56.000
56.00000

Cela signifie que le deuxième argument de format prend la décimale dans laquelle vous devez aller. Gardez à l'esprit que format renvoie sting. 

0
Iqra.