其他分享
首页 > 其他分享> > 1051 复数乘法 测试点2、3 舍入导致的符号问题

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;
}

标签:舍入,1051,cos,测试点,double,0.005,include,sin
来源: https://www.cnblogs.com/wodeblog1982/p/16462876.html