6.1E-17 es casi cero de todos modos [*]. Si necesita comparar realmente el resultado con cero, en matemática de coma flotante debe verificar que esté dentro de una cierta tolerancia del valor deseado, ya que la mayoría de los números no se pueden representar correctamente.
$x = cos(deg2rad($angle));
$is_zero = (abs($x) < 1e-10);
estrictamente hablando, por supuesto, el cero es en realidad un número que puede ser representados correctamente en coma flotante. El verdadero problema es que pi/2.0
no puede ser, por lo que la entrada a su función cos
no es "correcta".
[*] Para poner esto en contexto, tomada como una proporción de 1 UA (la distancia media entre el Sol y la Tierra) es equivalente a 0,0092 milímetros , o alrededor de un tenth of the average width de un cabello humano ..