如何将这个等式放在java代码中?

时间:2013-10-10 00:34:19

标签: java math equation

这就是我所做的,但不管我一直无限:

 public double calcr(){
  double cot = 1 / Math.tan(0);
  return  .5 * sideLength * cot * (Math.PI / numSides);
}

主要:

RegularPolygon poly = new RegularPolygon(4, 10);   
System.out.println(poly.calcr());

输出:

Inifinity 

我做错了什么?

2 个答案:

答案 0 :(得分:8)

问题是你做了

double cot = 1 / Math.tan(0);

这会使cot成为Infinity

你想要:

double cot = 1 / Math.tan(Math.PI / numSides);
return .5 * sideLength * cot;

或者,在一行中:

return .5 * sideLength / Math.tan(Math.PI / numSides);

答案 1 :(得分:1)

tan(0)为0,所以此行

double cot = 1 / Math.tan(0);

cot设置为Infinity。正如你所看到的,它下面的计算也将评估为无穷大。

由于您似乎正在尝试评估cot(pi/n),因此您需要1 / Math.tan(Math.PI / n)而不是cot * (Math.PI / numSides)使用cot的值不正确。