如何编写一个程序来检查sin ^ 2(θ)+ cos ^ 2(θ)的值?

时间:2015-03-22 09:46:53

标签: java

我正在编写Java编程作业,需要帮助解释以下问题: 编写一个程序,使用Math.sin()Math.cos()检查
sin 2 θ+ cos 2 θ的值约为1对于作为命令行参数输入的任何θ。只需打印该值即可。为什么这些值并不总是1?

1 个答案:

答案 0 :(得分:4)

规则#1:

不要将浮点数与等式(==)进行比较。检查浮动数字相等性的最佳方法是定义一些临近ZERO的阈值,并将两个数字之间的差异与该阈值进行比较

在您的情况下,您的目标号码 1 ,结果可能是 0.999998

double threshold = 0.00001; // 1e-5
double target = 1;
double result = 0.999998; 

System.out.println(Math.abs(target - result) < threshold); // prints true