python 不支持复数(a+bi)转换为整数或浮点数
最近在做一个数据的计算的时候,需要求开根号j,数据量比较多,但是出现了好多形如a+bi的形式,是复数。
什么是复数?
我们把形如 z=a+bi(a、b均为实数)的数称为复数。其中,a 称为实部,b 称为虚部,i 称为虚数单位。当 z 的虚部 b=0 时,则 z 为实数;当 z 的虚部 b≠0 时,实部 a=0 时,常称 z 为纯虚数。复数域是实数域的代数闭包,即任何复系数多项式在复数域中总有根.
python中 -8 的平方根为 0.000+2.828j
在查找问题的时候通过打印数据得到 当-8以"a ** 0.5"方法开根号时,打印结果为0.000+2.828j.
我随后ipython 用同样的方法开根号得到以下结果:
这时我准备进行数据转换,我们需要伪造一个复数,使用Python的自带函数complex进行伪造
进行数据类型转换失败了
python 是不支持复数转换为整数或浮点数
换一种思路解决问题
这个方法我感觉有些欠妥,有新的方法可以评论,一起学习
我发现0.000+2.828j 的虚部正好是我开根号得到的结果,
取实部方法为a.real,虚部为a.imag
所以当遇到这种情况时,我取虚部数据,再根据原数据的正负,决定结果的正负,
得到结果为-2.828.
感觉走的是歪路,但是解决了目前的问题,还请大佬指点迷津!