System.Numerics.Complex
.NET のデータ型では数学的に正確な結果が得られないことに驚きました。
Complex.Sqrt(-1) != Complex.ImaginaryOne
(0, 1) の代わりに (6.12303176911189E-17, 1) が得られますが、これは丸め誤差のように見えます。
浮動小数点演算は時々このような結果になることがわかりましたが、通常は整数を使用すると丸め誤差を回避できます。
この一見基本的な操作が明らかに間違った結果をもたらすのはなぜですか?