Objective c 将弧度转换为错误的度数

Objective c 将弧度转换为错误的度数,objective-c,Objective C,我需要把弧度转换成度。我已经用x*180/Pi尝试过了,问题是我的输出角度是以度分秒为单位的,所以转换过程中的小错误会导致大问题 For example: (aCos(0)*180)/Pi = 90.00000250 在以10为基数的宇宙中,它应该以90.00000000为单位,在代码中使用以下宏将弧度转换为度: For example: (aCos(0)*180)/Pi = 90.00000250 #define RADIANS_TO_DEGREES(radians) ((radian

我需要把弧度转换成度。我已经用x*180/Pi尝试过了,问题是我的输出角度是以度分秒为单位的,所以转换过程中的小错误会导致大问题

For example: (aCos(0)*180)/Pi = 90.00000250 

在以10为基数的宇宙中,它应该以90.00000000为单位,在代码中使用以下宏将弧度转换为度:

For example: (aCos(0)*180)/Pi = 90.00000250 
#define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / M_PI))
例如:

For example: (aCos(0)*180)/Pi = 90.00000250 
NSLog(@"Output radians as degrees: %f", RADIANS_TO_DEGREES(0.785398));

via.

问题是我本应该使用aces(双精度)时使用了acosf(浮点)

正确的解决方案是导入
GLKit

For example: (aCos(0)*180)/Pi = 90.00000250 
然后您可以使用GLKit已经实现的以下两个功能:
GLKMathDegreesToRadians()

glkmasradianstodegrees()

For example: (aCos(0)*180)/Pi = 90.00000250 
使用
GLKit
函数返回的值很好

For example: (aCos(0)*180)/Pi = 90.00000250 
目标C:

For example: (aCos(0)*180)/Pi = 90.00000250 
import <GLKit.h>

float angleInRadian = GLKMathDegreesToRadians(360.0);
// Return 6.2831854820
float angleInDegrees = GLKMathRadiansToDegrees(angleInRadian);
// Return 360.0000000000

这对我有用。您还可以
#导入
并使用
glkmathDegreestoraradians()
glkmathDianstoDegrees()

For example: (aCos(0)*180)/Pi = 90.00000250 

这不正是他所做的吗?是的,没什么区别:-/@JakeDahl,你说“输出角度以度分秒为单位”。你是说转换的输出角度,这是个什么问题?@JakeDahl:
(acos(0)*180)/M_PI
在我的计算机上精确给出了
90.00000
,那么什么是
acos
PI
?嗯,我把弧度转换成度后,将十进制转换成DMS。问题是(aCos(0)*180)/Pi返回90.00000250447817506938,但任何其他计算器将返回90。您如何定义
Pi
以及
aCos
是什么请注意,C/Objective-C中的浮点数使用的是基数2,而不是基数10。这看起来像是一个典型的浮点错误。试着用双打代替浮点数。此外,Martin,浮点在显示给用户之前不会真正“使用”基数,在这种情况下,它通常以10为基数。这就是为什么我要求定义
aCos
:-)degreestoraris宏不起作用,应该是:
#定义degreestoraris(度)((度)/180.0*M\u PI)
(注意括号),360°=2*PI弧度=2*3,14弧度,而不是0。6366197724@Cyril嗯,你给出的公式和我的帖子完全一样。就是说它不能很好地工作。360/(180*3,14)=360/565,2=~06369。我不明白你想解释什么,但我认为你错了。。。顺便说一句,GLK库中的这两种方法更易于使用,效果也更完美。非常有魅力!非常感谢。