Python seltsame Additionsfehler [duplizieren]

Mögliche Duplikate:
Python - Probleme mit der Dezimalstelle bei Floats
Python Float Gleichheit Verrücktheit

Im Code unten habe ich die Variablepercentage Das ist ein Schwimmer. Ich habe es so eingestellt, dass das wennnumber erreicht10,000, percentage soll vorbeigehen.01.

# Tries to find a number that when squared and 5%'ed is still a square.

import math

print("Script has started:\n")

percentage = .1
number = 1
while number != -1:
    number = number + 1
    num_powered = number ** 2
    num_5per = num_powered * percentage
    num_5per_sqrt = math.sqrt(num_5per)
    num_list = list(str(num_5per_sqrt))
    dot_location = num_list.index(".")
    not_zero = 0
    for x in num_list[dot_location + 1:]:
        if x != "0":
            not_zero = 1
            break
    if not_zero == 0:
        print("*********************************")
        print("Map :",number)
        print("Safe-Area :",num_5per_sqrt)
        print("Percentage :",percentage)
        print("*********************************")
        input()

    if number > 10000:
              number = 0
              percentage = percentage + .01
              print(percentage)

Ausgabe:

0.11
0.12
0.13
0.14
0.15000000000000002  # Here is where it goes crazy
0.16000000000000003

Antworten auf die Frage(4)

Ihre Antwort auf die Frage