有没有办法将数字转换为java中的复数?
Java没有复数类型。
要存储/表示复数,你将不得不:
- 创建自己的类型
- 使用变量(即RE,林)
- 或使用第三方库
另外,就“转换”双精度到复数而言,双精度值显然只能表示复数的虚数或实数部分。所以你必须更具体地说明你的意思。如果您想双重转换为等于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() + ")";
}
}
注意这个类有不可变的语义(即你不能修改它的内部状态,一旦被实例化)。如果你打算表示一个复数,这是可取的。然后,您可以使用静态方法来添加/减去/乘/除这些复数。
哇!非常感谢!所以为了澄清,我只需要将我的想象部分设置为0? – lalalay17 2013-03-09 20:41:03
您已经为不可变语义提供了get方法误导性名称之一。将setReal()重命名为getImaginary()。 – 2013-03-09 20:41:08
点上@ j.karlsson - 这是一个错字:) – 2013-03-09 20:47:11
我建议你建立一个复杂的数类,因为你可能知道,你可以使用两个坐标值的平面表示复数,因此该类可以容纳两个双打这些。然后查看如何划分,乘,减和加复数,并且使方法划分,乘,减,加,其中每一个都将一个复数对象作为参数。
尝试公地数学:http://commons.apache.org/proper/commons-math//userguide/complex.html – condit 2013-03-09 20:30:04