Skip to main content
 首页 » 编程设计

Python奇怪的加法错误

2025年05月04日9think

<分区>

Possible Duplicate:
python - decimal place issues with floats
Python float equality weirdness

在下面的代码中,我有变量 percentage,它是一个 float 。我已将其设置为如果 number 达到 10,000,percentage 应该增加 .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) 

输出:

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