Esto tampoco es un error, pero debido a la forma en que las computadoras realizan operaciones de punto flotante. Hay una cantidad limitada de precisión con la que cualquier computadora puede operar, por lo que a veces verá anomalías como esta. Si bien es posible escribir software que pueda manejar esto, tomaría mucho más tiempo de cálculo y aumentaría drásticamente los requisitos de memoria.
Si lo miras, e ^ (i * pi) devuelve -1 + 1.2x10 ^ -16i. Como puede ver, el componente imaginario es extremadamente pequeño (la mayoría lo consideraría insignificante, ya que es 16 órdenes de magnitud más pequeño que la parte real). Este componente se introduce por errores de redondeo y precisión, tanto con el cálculo en sí mismo como con el valor almacenado de pi, ya que es irracional (vea este enlace para otro ejemplo que trata con números irracionales).
Si este error de cálculo es inaceptable, debe buscar paquetes matemáticos que realicen análisis simbólicos en lugar de numéricos, o que utilicen números de punto flotante de alta precisión . Las advertencias de estos son que aumentarán drásticamente sus requisitos de memoria, y el análisis simbólico es a menudo mucho más lento. Además, los números de mayor precisión simplemente reducirán la magnitud de los errores de redondeo / precisión, no los eliminarán.