J'ai une liste online= [204.945, 205.953, 346.457] et je veux seulement avoir les chiffres de la liste à deux décimales (une liste arrondie et une liste non arrondie). Donc, comme ça, online= [204.94, 205.95, 346.45] pour le non arrondi et comme ça online= [204.95, 205.95, 346.46] pour l'arrondi.

Je ne connais même aucun code qui rend cela possible, alors je n'ai pas vraiment de code pour montrer mon approche. Je veux dire que j'ai essayé de jouer avec int(), mais cela semble enlever toutes les décimales et me donne simplement un entier.

0
Zegary 3 juin 2021 à 01:39

2 réponses

Meilleure réponse

Vous pouvez utiliser round() avec map() et lambda

list(map(lambda x: round(x,2), online))

Ou, Compréhension de la liste

[round(item,2) for item in online]

PRODUCTION:

[204.94, 205.95, 346.46]
1
BuddyBob 2 juin 2021 à 22:48

La fonction suivante fera cela:

def to_2_decimals(l):
    for i in range(len(l)):
        l[i]=int(l[i]*100)/100

online= [204.945, 205.953, 346.457,0.0147932132,142314324.342545]
to_2_decimals(online)
print(online)

Mais sachez que cet arrondi doublé ne sauve la mémoire. Si vous voulez juste que la représentation des chaînes de vos éléments de liste soit plus courte, utilisez:

print("{:.2f}".format(online[i]))
0
user2952903 2 juin 2021 à 23:05