gpt4 book ai didi

java - 为什么三角函数的某些值没有给出正确的答案?

转载 作者:行者123 更新时间:2023-12-02 03:46:57 24 4
gpt4 key购买 nike

我几天前开始编码并制作了一个简单的三角计算器。它使用度数并给出度数作为大多数值(某些值除外)的答案。

例如。如果我想要 sin(90) 的答案,它会给我答案,但如果我想要 sin(180) 的答案,它会给我一个错误的答案。

这是 sin 函数的代码

Scanner input = new Scanner(System.in);
System.out.println ("sin, cos, or tan?");
String trig = input.next();

if (trig.equals ("sin")) {
System.out.println ("input sin value in degrees");
Scanner angle = new Scanner(System.in);

double a,b;

a = (angle.nextDouble());
b = Math.sin(Math.toRadians(a));
System.out.println("Answer: "+ (b) );

它为我提供了以下角度的答案,例如 1.2246467991473532E-16:180、360、540、720 等。

这也会发生在 cos 和 tan 函数上(只有当 tan 函数未定义时才会发生,所以我可以理解)。

最佳答案

1.2246467991473532E-16 是一个相当小的数字,离零不远。在使用 float 或 double 时,几乎总是不需要与确切的数字进行比较,例如

a == 0

但使用类似

Math.abs(a - 0) < epsilon

其中 epsilon 需要精度,例如1E-10

关于java - 为什么三角函数的某些值没有给出正确的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36215317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com