tanf()函数在iOS中返回错误的值

时间:2017-11-16 05:43:55

标签: ios objective-c

我遇到了问题,但找不到错误。我正在尝试计算角度的正切。我在弧度和度数上都尝试过,我得到了错误的答案。我的代码:

CGFloat tiltAngleDegrees = tiltAngle * 180.0f / M_PI - 90.0f; // in degrees
NSLog(@"Tan Angle: %f", tanf(tiltAngleDegrees));

我试过Angle:-6.027872

我得到了回答:0.261010

我在计算器上计算的答案:-0.105596

我认为这将是一项简单的任务,但我碰到了一堵墙 - 无法找到出错的地方。我希望你们中的一些人能指出我正确的方向。

感谢。

2 个答案:

答案 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.0​​27872以度为单位,则会得到-0.105596,这是错误的。