string("0.5") == float(0.5)во первых, всеми способами избегайте неоднозначностей и странных преобразований, нестрогая типизация это лучший способ выстрелить себе в ногу, в будущем
(1000001.0/0.003)*0.003 == 1000001.0
# false
var x=(1000001.0/0.003)*0.003;
var y=1000001.0;
Math.abs(x-y)<1e-9;
# true
Ну скачивать сайт мне не к чему или я чего-то не понимаю.не попытавшись пройти по ссылке (как минимум загрузить его заголовки) ты не сможешь понять, файл для загрузки это или еще одна страница. Так же не загрузив страницу ты не сможешь понять по каким ссылкам идти дальше
когда ленивый программист пользуется файлами, он открывает файл (блокируя его удаление, это фича ОС), работает но не закрывает, так как момент (место в коде) закрытия иногда сложно формализовать,.. конечно система сделает это автоматически по завершению работы программы, но до тех пор файл будет заблокирован.