我遇到了问题,但找不到错误。我正在尝试计算角度的正切。我在弧度和度数上都尝试过,我得到了错误的答案。我的代码:
CGFloat tiltAngleDegrees = tiltAngle * 180.0f / M_PI - 90.0f; // in degrees
NSLog(@"Tan Angle: %f", tanf(tiltAngleDegrees));
我试过Angle:-6.027872
我得到了回答:0.261010
我在计算器上计算的答案:-0.105596
我认为这将是一项简单的任务,但我碰到了一堵墙 - 无法找到出错的地方。我希望你们中的一些人能指出我正确的方向。
感谢。
答案 0 :(得分:3)
tanf
需要弧度。
简单地说:
float tangent = tanf(-6.027872);
结果将是0.261009。
这是正确的结果。
对于-6.027872,-0.105596的结果表示您在计算器中输入-6.027872作为度数。将您的计算器置于弧度模式,然后您将看到0.261009的正确结果,就像使用此tanf
函数一样。
答案 1 :(得分:1)
正如@rmaddy所说,11-16 12:05:00.100 2682-2682/com.user.plansmart E/cra: android.os.FileUriExposedException: file:///data/user/0/com.user.plansmart/files/827%20Jeevan%20Rakshak.pdf exposed beyond app through Intent.getData()
需要弧度
在你的情况下,我认为你的角度是弧度
tanf
所以
tiltAngle = -6.027872 //in radians
给你0.26101,这是正确的答案。
在您的代码示例中,您将float tangent = tanf(-6.027872);
从弧度转换为度数,但减去90°。有什么理由吗?那时正确的结果将是-3.8313。
但问题是您以度数设置计算器。如果当时-6.027872以度为单位,则会得到-0.105596,这是错误的。