我正在写一个应该计算角度(以度为单位)的类,经过长时间的尝试我没有让它工作。
当 r = 45 & h = 0 总和应该在 77,14° 左右
但它返回 NaN - 为什么?我知道它一定是 Math.Atan-Method 和无效值。
我的代码:
private int r = 0, h = 0;
public Schutzwinkelberechnung(int r, int h)
{
this.r = r;
this.h = h;
}
public double getSchutzwinkel()
{
double sum = 0;
sum = 180 / Math.PI * Math.Atan((Math.Sqrt(2 * h * r - (h * h)) - r * Math.Sin(Math.Asin((Math.Sqrt(2 * h * r)) / (2 * r)))) / (h - r + r * (Math.Cos(Math.Asin(Math.Sqrt(2 * h * r) / (2 * r))))));
return sum;
}
有人看到我的错误吗?我从excel表中得到了公式。
编辑:好的,我的问题是在创建对象或获取用户输入时出现解析错误,显然是偶然解决的。正如 Nick Dechiara 所说,我必须添加一个简单的例外。非常感谢您的快速回复,我很感激。
EDIT2:我的excel表中的例外是:
if(h < 2) {h = 2}
所以这解释了一切,我根本没有注意。再次感谢所有答案。
int r = 45, h = 2;
sum = 77.14°