Mise en forme des flotteurs en Python sans les zéros à droite

Comment puis-je formater un flotteur de sorte qu'il ne contient pas les zéros à droite? En d'autres termes, je veux la chaîne résultante à être aussi court que possible.

Par exemple:

3 -> "3"
3. -> "3"
3.0 -> "3"
3.1 -> "3.1"
3.14 -> "3.14"
3.140 -> "3.14"
  • Cet exemple n'a pas de sens. 3.14 == 3.140 -- Ils sont le même nombre à virgule flottante. Pour cette question 3.140000 est le même nombre à virgule flottante. Le zéro n'existe pas dans la première place.
  • Je pense que le problème est en cours d'IMPRESSION, le nombre à virgule sans les zéros de fin, pas de l'équivalence de deux nombres.
  • Dans ce cas, il n'y a pas de "superflu" de zéro. %0.2f et %0.3f sont les deux formats requis pour produire les derniers numéros sur la gauche. Utilisation %0.2f pour produire les deux derniers chiffres sur la droite.
  • 3.0 -> "3" est toujours valide d'un cas d'utilisation. print( '{:,g}'.format( X ) a fonctionné pour moi à la sortie de 3X = 6 / 2 et quand X = 5 / 2 j'ai eu une sortie de 2.5 comme prévu.
  • vieille question, mais.. print("%s"%3.140) vous donne ce que vous voulez. (J'ai ajouté une réponse vers le bas vers le bas ci-dessous...)
InformationsquelleAutor TarGz | 2010-03-14