首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非直角三角形的输入输出角

非直角三角形的输入输出角
EN

Stack Overflow用户
提问于 2014-09-30 16:47:11
回答 1查看 1.3K关注 0票数 2

我试图写一个方法,它将输入三个边的长度,并以度表示角度。它用余弦定律求解与c相反的角度,并对边进行切换,从而找到第二个角。然而,程序没有输出任何正确的角度。例如,我输入了边长6、7和8,它给了我55.51、44.28和80.21。然而,6-7-8三角形中的任何一个角都比不上这些。下面是我使用的方法:

代码语言:javascript
复制
double angleNo(double a, double b, double c)
{
   double calc = Math.toDegrees(Math.acos((a*a + b*b - c*c)/(2*a*b)));
   double s = calc*100;
   double r = Math.round(s);
   double e = r/100;
   return e;
}

此外,如果有任何帮助,这里是执行它的地方:

代码语言:javascript
复制
        angleOne = pull.angleNo(op1, op2, hypo);
        angleTwo = pull.angleNo(op2, hypo, op1);
        angleThree = 180 - angleTwo - angleOne;

    }

     System.out.println("The angles are " + angleOne + "°, " + angleTwo + "°, " + angleThree + "°.")        

任何帮助都会很好,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-30 16:53:26

公式是

所以改变

代码语言:javascript
复制
Math.toDegrees(Math.acos((a*a + b*b - c*c)/2*a*b));

代码语言:javascript
复制
Math.toDegrees(Math.acos((a*a + b*b - c*c)/(2*a*b)));
                                           ^     ^

(否则,您将被2除以,乘以a*b,而要除以2*a*b。)

我建议您不要试图舍入方法中的值。让它成为一个double,直到需要打印该值,然后使用例如

代码语言:javascript
复制
System.out.printf("Value: %.2f%n", yourDouble);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26125999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档