Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数学不行_Java_Trigonometry - Fatal编程技术网

Java 数学不行

Java 数学不行,java,trigonometry,Java,Trigonometry,我的程序的这一部分应该使用余弦规则来计算底角 public double bottomAngle() { topAngleinRadians = Math.toRadians(topAngle) ; return (Math.cos(topAngleinRadians)(bottomAngle() = ladderLength^2 + floorLength^2 - verticalHeight^2) / 2 * ladderLength * floorLen

我的程序的这一部分应该使用余弦规则来计算底角

public double bottomAngle() {

        topAngleinRadians = Math.toRadians(topAngle) ;

        return (Math.cos(topAngleinRadians)(bottomAngle() = ladderLength^2 + floorLength^2 - verticalHeight^2) / 2 * ladderLength * floorLength) ;
        }
产生的错误:


这是我的错误列表,我不知道我的公式出了什么问题。所有的方法,如垂直高度、梯段长度,在其他方法中都能很好地工作。我用这个公式的方式有点不对劲。你能帮我一下吗?

与代数表示法不同,Java括号不会隐式乘法


您需要在
之间插入
*
)(

如果看不到错误列表,您确实有语法错误:

return(Math.cos(topAngleinRadians)(bottomAngle()=ladderLength^2+floorLength^2-垂直高度^2)/2*ladderLength*floorLength);

  • 调用
    Math.cos()
    和表达式的下一部分之间没有运算符
  • 您似乎还在为函数调用赋值,这是没有意义的
  • ^
    运算符也不是指数运算符,而是位异或运算符。您可能正在查找
    Math.pow()

这些正是我在顶部看到的。阅读Java及其评估方法可能会有所帮助。

您的sytnax不正确。括号并不表示多应用,您需要显式*(乘法运算符)。此外,您还有一些其他错误:

Math.cos(topAngleinRadians)(bottomAngle() = ladderLength^2 + floorLength^2...

这看起来像是一个方法调用,即bottomAngle()被设置为等于其他表达式,这也是无效的。

无法真正理解返回语句的用途,但我宁愿将语句分成2-3行,以使其更具可读性:-

public double bottomAngle() {

        topAngleinRadians = Math.toRadians(topAngle) ;


        double bottomAngle = Math.pow(ladderLength, 2) + Math.pow(floorLength, 2) - 
                             Math.pow(verticalHeight, 2);

        double denom = 2 * ladderLength * floorLength;
        double numerator = bottomAngle * Math.cos(topAngleinRadians);

        return numerator / denom ;
}
请注意,
3^2
在Java中确实意味着
3平方
。您需要使用
Math.pow
方法

另外,您需要检查为什么对LHS进行
bottomAngle()
方法调用。我假设它是一个临时变量


正如您所看到的,您的代码看起来更具可读性。并且很容易发现编译器错误。

这里有一些问题

乘法-与正则代数不同,必须明确定义两个表达式之间的乘法
Math.cos(topAngleinRadians)*…

Assignment-您似乎试图将某些内容分配给方法调用(
bottomAngle()=…
)。这不是您真正可以做的事情,我也不确定您试图通过它实现什么


Squaring-
10^2
在java中不是将
10
平方为
100
,而是
XOR
(异或)运算符。您可能需要使用
Math.pow(ladderLength,2)
或者干脆
ladderLength*ladderLength

在这里发布错误列表。这一行
bottomAngle()的目的是什么=ladderLength ^2+floorLength ^2-垂直高度^2
?我不知道
return
语句要做什么,但它似乎没有任何意义。它为什么要调用自身?您是否试图使用
^
作为电源?如果是,它没有达到您的预期。该符号实际上是位排他或在java中。请尝试使用usi为什么在
LHS
上有一个
方法调用
?还有更多:
bottomAngle()=…
也不起作用:)还有那个讨厌的“^”语法。我认为OP想要指数化;但在Java中,“^”表示“XOR”。@JoelWestberg。是的,编辑过。是复制粘贴,所以第一次没有注意到:)