Warum zeigt Python "0.2 + 0.1" als "0.30000000000000004" an? [Duplikat]

Diese Frage hat hier bereits eine Antwort:

Kann jemand das erklären: 0.2 + 0.1 = 0.30000000000000004? [Duplikat] 2 Antworten

Ich habe den folgenden Code zum Generieren eines Bereichs mit Floats geschrieben:

def drange(start, stop, step):
    result = []
    value = start
    while value <= stop:
        result.append(value)
        value += step
    return result

Beim Aufruf dieser Funktion mit dieser Anweisung:

print drange(0.1,1.0,0.1)

Ich habe folgendes erwartet:

[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]

Stattdessen erhalte ich jedoch Folgendes:

[0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6, 0.7, 0.7999999999999999, 0.8999999999999999, 0.9999999999999999]

Warum ist das so und wie kann ich das beheben?

Vielen Dank!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage