Comment transformer un nombre à virgule comme 293.4662543 en 293.47 en python?
La façon de raccourcir le flotteur résultat que j'ai obtenu? J'ai seulement besoin de 2 chiffres après la virgule. Désolé, je ne sais pas vraiment comment expliquer ce mieux en anglais...
Grâce
Vous voulez changer la valeur du résultat pour une utilisation ultérieure ou tout simplement de changer ce qu'une chaîne décimale, il est converti en?
OriginalL'auteur Shane | 2010-10-12
Vous devez vous connecter pour publier un commentaire.
De La virgule Flottante Guide Python feuille de triche:
De l'utilisation de round() est la mauvaise chose à faire, parce que les flotteurs sont binaire fractions qui ne peut pas représentent des chiffres décimaux avec précision.
Si vous avez besoin de faire des calculs avec des chiffres après la virgule, utilisez le
Decimal
type dans ledecimal
module.comme je l'ai écrit: si vous avez besoin de travailler avec des données décimales, vous devriez être en utilisant un type de données décimal au lieu de flotter.
OriginalL'auteur Michael Borgwardt
Si vous voulez que le numéro, utilisez la
round()
fonction:(mais +1 pour Michael réponse de la ré. le
Decimal
type.)Si vous voulez une chaîne de caractères:
OriginalL'auteur RichieHindle
À partir de :
Python Docs
round(x[, n])
De retour de la valeur à virgule flottante x arrondi à n chiffres après la virgule. Si n est omis, la valeur par défaut est zéro. Le résultat est un nombre à virgule flottante. Les valeurs sont arrondies au plus proche multiple de 10 puissance moins n; si deux multiples sont également à proximité, l'arrondi se fait à l'écart de 0 (. par exemple, round(0,5) est 1.0 et ronde(-0.5) est -1.0).
Remarque Le comportement de round() pour les flotteurs peuvent être surprenants: par exemple, round(2.675, 2) donne de 2,67 à la place de l'2.68. Ce n'est pas un bug: c'est une conséquence du fait que la plupart des fractions décimales ne peut pas être représenté exactement comme un float. Voir l'Arithmétique à virgule Flottante: Enjeux et Limites pour plus d'informations.
Ressemble ronde (293.466....[, 2]) serait-il le faire,
OriginalL'auteur onaclov2000
J'espère que cela aidera.
Résultat:
OriginalL'auteur Xavi Martínez
OriginalL'auteur ghostdog74
x = round(293.4662543, 2)
OriginalL'auteur Ethan Shepherd
Si vous avez besoin des chiffres comme 2.3 k ou 12M, cette fonction fait le job:
Résultats:
OriginalL'auteur chribsen