一直在玩 C# 中的复数,我发现了一些有趣的东西。不确定它是错误还是我刚刚错过了什么,但是当我运行以下代码时:
var num = new Complex(0, 1);
var complexPow = Complex.Pow(num, 2);
var numTimesNum = num * num;
Console.WriteLine("Complex.Pow(num, 2) = {0} num*num = {1}", complexPow.ToString(), numTimesNum.ToString());
我得到以下输出:
Complex.Pow(num, 2) = (-1, 1.22460635382238E-16) num*num = (-1, 0)
如果没记错的话,复数乘以本身应该只是 -1,没有虚部(或者更确切地说是 0 的虚部)。那么为什么 Complex.Pow(num, 2) 不给 -1 呢?1.22460635382238E-16 来自哪里?
如果重要的话,我正在使用单声道,因为我不在 Windows atm 中。认为它可能是 64 位的,因为我运行的是 64 位操作系统,但我不确定在哪里检查。
保重,克尔。
编辑:
好吧,我解释得不好。我当然是指 i 的平方是 -1,而不是任何复数的平方。感谢您指出。现在有点累,所以我的大脑不太好工作,大声笑。
编辑2:
为了澄清一些事情,我最近一直在阅读一些数学知识,并决定制作一种小型脚本语言来娱乐。好的,“脚本语言”是一个过度声明,它只是评估方程式而已。