У меня есть ситуация, когда разумно иметь деление на 0,0 или на -0,0, где я бы ожидал увидеть + Inf и -Inf, соответственно, как результаты. Кажется, что Python любит бросать
ZeroDivisionError: float division by zero
в любом случае. Очевидно, я решил, что могу просто обернуть это тестом на 0.0. Однако я не могу найти способ отличить от +0.0 до -0.0. (FYI вы можете легко получить -0.0, набрав его или с помощью общих вычислений, таких как -1.0 * 0.0).
IEEE обрабатывает все это очень хорошо, но Python, похоже, прилагает все усилия, чтобы скрыть хорошо продуманное поведение IEEE. Фактически, тот факт, что 0.0 == -0.0 на самом деле является функцией IEEE, поэтому поведение Python серьезно нарушает ситуацию. Он отлично работает в C, Java, Tcl и даже JavaScript.
Предложения?