复数的相加问题,为什么第一个数据出结果后会出现这么大的差别?
import java.util.Scanner;
class Fushu{
double a;
double b;
double c;
double d;
double sum1;
double sum2;
public Fushu(double a, double b, double c, double d) {
super();
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.sum1 = a+c ;
this.sum2 = b+d ;
}
public void add(){
if(sum1 != 0 && sum2 !=0){
if(sum2 < 0){
System.out.printf("%.0g%.0gi\n",sum1,sum2);
}else{
System.out.println(sum1 + "+" +sum2 + "i");
}
}
if(sum1 == 0.0 && sum2 == 0.0){
System.out.println( 0 );
}
if(sum2 == 0.0){
System.out.println(sum1);
}
if(sum1 == 0.0){
System.out.println(sum2 + "i");
}
}
}
public class oj1401 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
Fushu f = new Fushu(sc.nextDouble(),sc.nextDouble(),sc.nextDouble(),sc.nextDouble());
f.add();
}
sc.close();
}
}