Ios 带学位的ACO和cos未给出正确结果
当我编写如下代码时 它返回1作为结果,但若我试图从度而不是弧度获得结果,那个么将面临如下问题 然后它返回0.017453而不是1 结果我得到了正确的1。但如果我写的像下面这样 那么我得到的结果是0.998999。 那么问题在哪里呢?Ios 带学位的ACO和cos未给出正确结果,ios,objective-c,math,trigonometry,Ios,Objective C,Math,Trigonometry,当我编写如下代码时 它返回1作为结果,但若我试图从度而不是弧度获得结果,那个么将面临如下问题 然后它返回0.017453而不是1 结果我得到了正确的1。但如果我写的像下面这样 那么我得到的结果是0.998999。 那么问题在哪里呢? 请帮助我0.017453是关于一个度数的弧度 如果希望日志记录行输出1,则需要将其转换回度数 #define RADIANS_TO_DEGREES(angle) ((angle) * 180.0 / M_PI) NSLog(@"%f", RADIANS_TO_DEG
请帮助我0.017453是关于一个度数的弧度 如果希望日志记录行输出1,则需要将其转换回度数
#define RADIANS_TO_DEGREES(angle) ((angle) * 180.0 / M_PI)
NSLog(@"%f", RADIANS_TO_DEGREES(acos(cos(DEGREES_TO_RADIANS(1)))));
请注意,由于三角函数和浮点数的精度有限,您可能会得到类似于0.9999的结果。0.017453是指一个度数中的弧度 如果希望日志记录行输出1,则需要将其转换回度数
#define RADIANS_TO_DEGREES(angle) ((angle) * 180.0 / M_PI)
NSLog(@"%f", RADIANS_TO_DEGREES(acos(cos(DEGREES_TO_RADIANS(1)))));
请注意,由于三角函数和浮点数的精度有限,您可能会得到类似于0.9999的结果。弧余弦是余弦的倒数 余弦以一个角度作为输入,并返回一个从-1到1的值。 圆弧余弦acos将-1到1之间的值作为输入,并返回一个角度 acos的输入不是角度,因此不应尝试在度和弧度之间进行转换。结果是一个角度。这就是你要改变的 那么你会写信吗 x=弧度到度cos1 这将给出余弦为1的角度,用度表示。acos1的值为0,在度或弧度方面相同 最好使用acos0作为测试值。在pi/2或90度时,余弦函数=0 所以 编辑: 我现在明白了,在你的问题中,你是从一个坐标系到另一个坐标系,这是正确的 但是,如果您希望以度为单位回答问题,您仍然需要将acos的结果转换为度,如上所述。凯文的回答也是正确的。我的错误 注意cos1在度和弧度上都有点奇怪。这两个问题的答案都不公平 cos0=1,cospi=-1,cos2pi=1。 或者以度为单位 cos180=-1,cos360=1
以度为单位的cos1将是一个奇怪的十进制值,以弧度为单位的cos1也将是一个奇怪的十进制值。弧余弦是余弦的倒数 余弦以一个角度作为输入,并返回一个从-1到1的值。 圆弧余弦acos将-1到1之间的值作为输入,并返回一个角度 acos的输入不是角度,因此不应尝试在度和弧度之间进行转换。结果是一个角度。这就是你要改变的 那么你会写信吗 x=弧度到度cos1 这将给出余弦为1的角度,用度表示。acos1的值为0,在度或弧度方面相同 最好使用acos0作为测试值。在pi/2或90度时,余弦函数=0 所以 编辑: 我现在明白了,在你的问题中,你是从一个坐标系到另一个坐标系,这是正确的 但是,如果您希望以度为单位回答问题,您仍然需要将acos的结果转换为度,如上所述。凯文的回答也是正确的。我的错误 注意cos1在度和弧度上都有点奇怪。这两个问题的答案都不公平 cos0=1,cospi=-1,cos2pi=1。 或者以度为单位 cos180=-1,cos360=1
以度为单位的cos1将是一个奇怪的十进制值,以弧度为单位的cos1也将是一个奇怪的十进制值。你说得有点对。但是,您不应该将输入转换为度数和弧度之间的acos,因为它不是一个角度。但是如何应用此解决方案或发布您在calculator project中所说的内容?@Duncac,不确定您的意思。如果你的意思是你不应该提供一个角度作为acos的论据,我不是。我在给acos提供cos的返回值。凯文,我错了。我忽略了一个事实,即您有一个从度到弧度的转换,因此度到弧度的转换应用于到余弦的输入,而不是到acos的输入。我收回我的评论,你说得有点对。但是,您不应该将输入转换为度数和弧度之间的acos,因为它不是一个角度。但是如何应用此解决方案或发布您在calculator project中所说的内容?@Duncac,不确定您的意思。如果你的意思是你不应该提供一个角度作为acos的论据,我不是。我在给acos提供cos的返回值。凯文,我错了。我忽略了一个事实,即您有一个从度到弧度的转换,因此度到弧度的转换应用于到余弦的输入,而不是到acos的输入。我收回我的评论。谁否决了我?我的答案是正确的,凯文的答案是不正确的。我没有否决凯文的答案,因为它部分正确。如果你认为我提供了不正确的信息,站出来说出来。我同意,我会给你一个回复:事实上,凯文的答案是完美的。我没有注意到OP使用了acoscos1。谁否决了我?我的答案是正确的,凯文的
他的回答是不正确的。我没有否决凯文的答案,因为它部分正确。如果你认为我提供了不正确的信息,站出来说出来。我同意,我会给你一个回复:事实上,凯文的答案是完美的。我没有注意到OP使用的是acoscos1。
NSLog(@"%f",acos(cos(DEGREES_TO_RADIANS(1)))*180/M_PI);
NSString *a1 = [NSString stringWithFormat:@"%f",(cos(DEGREES_TO_RADIANS(1)))];
NSString *a2 = [NSString stringWithFormat:@"%f",(acos([a1 doubleValue])*180/M_PI)];
NSLog(@"%f",[a2 doubleValue]);
#define RADIANS_TO_DEGREES(angle) ((angle) * 180.0 / M_PI)
NSLog(@"%f", RADIANS_TO_DEGREES(acos(cos(DEGREES_TO_RADIANS(1)))));
acos(0) == pi/2. (~1.5707)
RADIANS_TO_DEGREES(acos(0)) == 90.