Ich war erstaunt, dass der Datentyp System.Numerics.Complex
in .NET keine mathematisch genauen Ergebnisse liefert.
Anstelle von (0, 1) bekomme ich (6.12303176911189E-17, 1), was einem Rundungsfehler sehr ähnelt.
Nun erkenne ich, dass Fließkomma-Arithmetik manchmal zu solchen Ergebnissen führt, aber normalerweise mit Ganzzahlen werden Rundungsfehler vermieden.
Warum liefert diese anscheinend einfache Operation ein offensichtlich falsches Ergebnis?
Sehen Sie sich die dekompilierte Methode Sqrt
an.
Es gibt tatsächlich einen Rundungsfehler, der durch die Verwendung von Polarkoordinaten und Radianten verursacht wird. value.Phase / 2.0
gibt pi / 2 zurück, was keine exakt darstellbare Zahl ist. Bei der Umrechnung von Polarkoordinaten (1, pi / 2) wird der Rundungsfehler sichtbar, wenn die reelle Koordinate sich der Null nähert.
Tags und Links .net c# complex-numbers