<分区>
我正在做我的 Java 编程作业,需要帮助解释以下问题:
编写一个程序,使用 Math.sin()
和 Math.cos()
检查
sin2θ 的值+ cos2θ 对于作为命令行参数输入的任何 θ 大约为 1。只需打印值。为什么值不总是恰好为 1?
标签 java
<分区>
我正在做我的 Java 编程作业,需要帮助解释以下问题:
编写一个程序,使用 Math.sin()
和 Math.cos()
检查
sin2θ 的值+ cos2θ 对于作为命令行参数输入的任何 θ 大约为 1。只需打印值。为什么值不总是恰好为 1?
最佳答案
不要将 float 与相等性 (==) 进行比较。检查 float 是否相等的最佳方法是定义一些接近零的阈值,并将两个数字与该阈值的差异进行比较
在您的情况下,您的目标数字是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
关于java - 如何编写一个程序来检查 sin^2(θ) + cos^2(θ) 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29192940/