Du tror desimaltall er eksakte
Handler om: Datatype
Et float lagres binært, og mange desimaltall kan ikke lagres helt nøyaktig: 0.1 + 0.2 gir 0.30000000000000004, og 0.1 + 0.2 == 0.3 er False. Rund av med round(x, 2) eller f"{x:.2f}" når du viser svaret, og sammenlign aldri desimaltall med ==.
Eksempel
Handlekurven viser 886.9499999999999 kr.
Slik tenker du riktig om det
Regn med desimaltall som med en lommeregner med få siffer: litt unøyaktig i siste siffer. Bestem hvor mange desimaler svaret skal ha, og rund av når du viser det.
Slik ser det ut i kode
Slik gikk det galt
print(1.1 + 2.2 == 3.3) # False Slik fikser du det
print(round(1.1 + 2.2, 2) == 3.3) # True