2012-03-26 2 views
0
def findDistance(): 
    first_coord = raw_input("Enter first coordinate set (format x, y): ").split(",") 
    second_coord = raw_input("Enter second coordinate set (format x, y): ").split(",") 

    x1 = float(first_coord[0]) 
    x2 = float(second_coord[0]) 
    y1 = float(first_coord[1]) 
    y2 = float(first_coord[1]) 

    print math.sqrt(float(((x2 - x1) * (x2 - x1))) + float(((y2 - y1) * (y2 - y1)))) 

Ввод в серии (10, 12), (12, 10) дает мне 2,0, когда фактическое расстояние (округленное несколько) составляет 2.82842. Похоже, Python настил мой номер. Почему и как это происходит?Почему (и как) это Python, округляющий это математическое уравнение?

ответ

7

Копия & Ошибка пасты. Линия

y2 = float(first_coord[1]) 

должен быть

y2 = float(second_coord[1]) 

Конечно, результат также округляется до IEEE двойной точности, но причина, результат в том, что далеко это выше ошибка.

+0

Вот и все! Благодарю. * facepalm * Я искал что-то менее очевидное, чем это. –

+1

@ElliotBonneville: Всегда ищите очевидное первое. Я занимаю меньше времени. –

+0

Урок узнал, еще раз спасибо. Принятие через 5 мин. –

Смежные вопросы