Dziwny błąd dodawania Pythona [duplikat]

Możliwy duplikat:
python - problemy z miejscem dziesiętnym z pływakami
Dziwaczność równości w Pythonie

W poniższym kodzie mam zmiennąpercentage który jest pływakiem. Mam to tak skonfigurowane, że jeślinumber sięga10,000, percentage ma iść w górę.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)

Wydajność:

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

questionAnswers(4)

yourAnswerToTheQuestion