В общем, когда вы имеете дело с числами с плавающей точкой, вы имеете дело с аппроксимациями. Есть числа, которые не могут быть представлены точно, и операции tan и arctan сами по себе являются только приблизительными.
Если вы хотите сравнить числа с плавающей запятой, вам нужно спросить, равны ли они почти или эквивалентно, если разница меньше некоторого небольшого значения, и тщательно продумать, что вы делаете.
Вот некоторые часто задаваемые вопросы (для c ++, но идея та же самая), которые немного говорят о некоторых странностях чисел с плавающей запятой:
FAQ 29.16
FAQ 29.17
FAQ 29.18
Редактировать: Глядя на другие ответы, я понимаю, что главная проблема, вероятно, заключается в том, что загар не является обратимым, но вопрос аппроксимации тоже стоит рассмотреть, когда вы проверяете числа с плавающей запятой на равенство.
Глядя на документацию .net для Math.Atan , atan выдает значение от -π / 2 до ≤ π / 2, которое не включает 10. Я думаю, что это обычный диапазон для арктангенс.