首页 新闻 会员 周边 捐助

Java中 如果复数类成员是int型,怎么实现两个复数相除

0
悬赏园豆:5 [已解决问题] 解决于 2017-04-18 12:36

(1) 复数类Complex 的属性有:

RealPart :    int型,代表复数的实数部分

ImaginPart :  int型,代表复数的虚数部分

package applet;
import java.applet.*;
import java.awt.*;
public class j_1 extends Applet{
  Complex a,b,c,d,e,f;
  public void init()
  {
    a=new Complex(2,2);
    b=new Complex(3,4);
    c=new Complex();
    d=new Complex();
    e=new Complex();
    f=new Complex();
  }
  public void paint(Graphics g)
  {
    c=a.add(b);
    d=a.sub(b);
    e=a.mul(b);
    f=a.div(b);
    g.drawString("第一个复数:"+a.ToString(), 10, 50);
    g.drawString("第二个复数:"+b.ToString(), 10, 70);
    g.drawString("两复数之和:"+c.ToString(), 10, 90);
    g.drawString("两复数之差:"+d.ToString(), 10, 110);
    g.drawString("两复数相乘:"+e.ToString(), 10, 130);
    g.drawString("两复数相除:"+f.ToString(), 10, 150);
  }
}
class Complex{
  public int realPart;
  public int imaginPart;
  Complex(int r,int i)
  {realPart=r;imaginPart=i;}
  Complex(){realPart=0;imaginPart=0;}
  Complex add(Complex a)
  {
    Complex temp=new Complex();
    temp.realPart=realPart+a.realPart;
    temp.imaginPart=imaginPart+a.imaginPart;
    return temp;
  }
  Complex sub(Complex a)
  {
    Complex temp=new Complex();
    temp.realPart=realPart-a.realPart;
    temp.imaginPart=imaginPart-a.imaginPart;
    return temp;
  }
  Complex mul(Complex a)
  {
    int r,i,ra,ia;
    r=this.realPart;
    i=this.imaginPart;
    ra=a.realPart;
    ia=a.imaginPart;
    Complex temp=new Complex();
    temp.realPart=r*ra-i*ia;
    temp.imaginPart=i*ra+r*ia;
    return temp;
  }
  Complex div(Complex a)
  {
    double r,i,ra,ia;
    r=this.realPart;
    i=this.imaginPart;
    ra=a.realPart;
    ia=a.imaginPart;
    Complex temp=new Complex();
    temp.realPart=(r*ra+i*ia)/(ra*ra+ia*ia);//这个地方应该如何修改,还是说只能改成把类成员变量改成double型数据才可以
    temp.imaginPart=(i*ra-r*ia)/(ra*ra+ia*ia);
    return temp;
  }
  public String ToString()
  {
    if(imaginPart<0)
    {
      return (realPart+(imaginPart+"i"));
    }
    else return(realPart+"+"+imaginPart+"i");
  }
}

se_sont的主页 se_sont | 初学一级 | 园豆:4
提问于:2017-04-10 14:13
< >
分享
最佳答案
0

不知道为何要这样做,为什么不用BigDecimal

收获园豆:5
奈何一笑 | 菜鸟二级 |园豆:439 | 2017-04-10 14:40
其他回答(1)
0

前面加个类型转换,转成double不就可以了

AnonymouL | 园豆:1769 (小虾三级) | 2017-04-14 08:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册