1051 复数乘法 测试点2、3 舍入导致的符号问题

错误点

  1. (-0.005,0)上的数精确到小数点后两位时应是0而不是-0

注意点

  1. cmath中的sin()和cos()

代码

#include <iostream>
#include <cstdio>
#include <cmath>
#include <iomanip>
using namespace std;

int main(){

	double a,b,c,d;
	double m,n;
	cin>>a>>b>>c>>d;
	m=a*c*cos(b)*cos(d)-a*c*sin(b)*sin(d);
	n=a*c*cos(b)*sin(d)+a*c*sin(b)*cos(d);
	if(m<0&&m>-0.005){
		m=0;
	}
	if(n<0&&n>-0.005){
		n=0;
	}
	if(n>=0){
			cout<<fixed<<setprecision(2)<<m<<'+'<<n<<'i';
	}
	else if(n<0){
		cout<<fixed<<setprecision(2)<<m<<n<<'i';
	}	
    return 0;
}

posted @ 2022-07-10 11:39  qwasdasd  阅读(36)  评论(0)    收藏  举报