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

标签 java

<分区>

我正在做我的 Java 编程作业,需要帮助解释以下问题: 编写一个程序,使用 Math.sin()Math.cos() 检查
sin2θ 的值+ cos2θ 对于作为命令行参数输入的任何 θ 大约为 1。只需打印值。为什么值不总是恰好为 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/

相关文章:

java - Spring Boot 和 OAuth2 CORS

Java EBNF?

java - Hudson 插件,Java 错误 "... disagree on InnerClasses attribute"

java - 传递对 Arraylist 中对象的引用?

java - 在 actionPerformed() 方法中将项目添加到 ArrayList 中

java - 使用 Spring MVC 从 JSP 获取值

java - Java 的重构/重组工具

java - 向 Java 程序添加音乐/声音

java - 遇到错误 : message from Actor to Actor was not delivered. [1] 死信。跨集群的分布式发布-订阅不起作用

Java 8 流矩阵乘法比 For 循环慢 10 倍?