python mise en forme des nombres à virgule
Question
mon entrée est 3,23, mais quand je l'utilise flottant sur elle, il devient 3.2,
quand mon entrée est 3,00, quand je fais flotter sur, il devient 3.0
quand je convertir flotter de chaîne, je veux encore qu'il soit 3,00 et 3.0 c'est possible? Je veux savoir le code pour le rendre possible, et quand je fais un problème dans lequel le point décimal jusqu'à 2 chiffres d'importance, 3,23 est mieux que 3,2, pour plus de précision
La solution
Je suppose que ce que vous voulez est de convertir un flotteur en une chaîne avec le nombre de décimales que vous voulez. Vous pouvez obtenir qu'utiliser% .3f (ici 3 est le nombre de décimales que vous souhaitez imprimer Par exemple:.
>>> print "Value: %.2f" % 3.0000
Valeur: 3,00
Autres conseils
Étant donné que ce fil est d'abord sur les mots « chaîne de mise en forme python décimal », je pense qu'il est bon de fournir une réponse plus récente:
>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'
si vous voulez utiliser la précision décimale le python decimal
Module:
from decimal import Decimal
x = Decimal('3.00')
print x
Cette impression:
Decimal('3.00')
Si vous souhaitez imprimer un nombre à virgule flottante à une précision désirée, vous pouvez utiliser des codes de mise en forme de sortie comme suit:
En supposant que x = 3,125
print "%.1f" % (x) # prints 3.1
print "%.2f" % (x) # prints 3.12
print "%.3f" % (x) # prints 3.125
print "%.4f" % (x) # prints 3.1250
Cela fonctionne en Python 2.6 (je pense qu'ils ont changé la fonction d'impression dans la version 3).
Vous devez aussi réaliser que les nombres à virgule flottante ne peuvent être stockés avec une certaine précision, donc parfois vous n'obtiendrez exactement le même nombre de retour. Par exemple 0,1 peut être stocké sous forme de quelque chose comme 0,9999999987.