我需要double的实部和虚部用于进一步处理,我几乎不知道如何将它们转换为复数。任何意见都会非常感激......
答案 0 :(得分:3)
Java没有复数类型。
要存储/表示复数,您必须:
此外,只要将double转换为Complex数,double实际上只能表示复数的虚数或实数。因此,您必须更具体地了解您的意思。如果你想将double转换为复数的实部,等于你的双和虚部等于0.那么这应该是非常直接的..
如果您想创建自己的类型,它可能如下所示:
class ComplexNumber{
public ComplexNumber(double re, double im)
{
_re = re;
_im = im;
}
private double _re;
public double getReal(){
return _re;
}
private double _im;
public double getImaginary(){
return _im;
}
@overrides
public boolean equals(object other){
if(other == null)
return false;
ComplexNumber n = (ComplexNumber)other;
return _re.equals(n._re) && _im.equals(n._im);
}
@overrides
public boolean getHashCode(){
return _re.getHashCode() ^ _im.getHashCode();
}
@overrides
public void toString(){
return "(" + re.toString() + "," + im.toString() + ")";
}
}
请注意,此类具有不可变的语义(即,一旦实例化,您就无法修改它的内部状态)。如果您要表示复数,这是可取的。然后你可以使用静态方法来加/减/乘/除这些复数。
答案 1 :(得分:0)
我建议你构建一个复数类,因为你可能知道你可以使用两个坐标值在一个平面上表示复数,所以这个类可以容纳两个双精度数。然后只需查看如何划分,乘法,减去和添加复数,并使方法分割,乘法,减法,相加,每个方法都将复数对象作为参数。