J'ai une liste qui se compose de valeurs flottantes mais elles sont trop détaillées pour que je puisse procéder. Je sais que l'on peut les raccourcir en utilisant la fonction ("%.f" % variable)
opérateur, comme :
result = [359.70000000000005]
result = "%.2f" % result
result = [359.70]
Ma question est la suivante : comment puis-je transformer une liste de valeurs en leurs équivalents arrondis sans utiliser un itérateur ? J'ai essayé quelque chose, mais j'ai obtenu un résultat négatif. TypeError
:
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
Comment puis-je fournir une liste propre comme :
list = [0.30, 0.5, 0.20]
2 votes
Une sérieuse confusion de concepts ici. Par exemple
0.2
y0.20000000000000001
sont des représentations de la même nombre à virgule flottante en double précision. Il suffit de lancer votre interpréteur et d'entrer0.2
pour voir ça.