Dies ist kein Fehler, aber aufgrund der Art und Weise, wie Computer Fließkommaoperationen ausführen. Es gibt eine begrenzte Genauigkeit, mit der jeder Computer arbeiten kann, und daher werden manchmal Anomalien wie diese angezeigt. Es ist zwar möglich, Software zu schreiben, die damit umgehen kann, es würde jedoch viel mehr Rechenzeit in Anspruch nehmen und den Speicherbedarf drastisch erhöhen.
Wenn Sie es betrachten, gibt e ^ (i * pi) -1 + 1.2x10 ^ -16i zurück. Wie Sie sehen, ist die Imaginärkomponente extrem klein (die meisten würden sie für vernachlässigbar halten, da sie um 16 Größenordnungen kleiner ist als der Realteil). Diese Komponente wird durch Rundungs- und Präzisionsfehler eingeführt, sowohl mit der Berechnung selbst als auch mit dem gespeicherten Wert von pi, da er irrational ist (siehe diesen Link für ein anderes Beispiel, das sich mit irrationalen Zahlen befasst).
Wenn dieser Berechnungsfehler nicht akzeptabel ist, sollten Sie nach mathematischen Paketen suchen, die eher eine symbolische als eine numerische Analyse durchführen, oder solche, die hochpräzise Gleitkommazahlen verwenden . Die Vorbehalte dabei sind, dass sie den Speicherbedarf drastisch erhöhen und die symbolische Analyse oft langsamer ist. Bei höheren Präzisionswerten werden die Rundungs- / Präzisionsfehler nur verkleinert, nicht jedoch eliminiert.