【发布时间】:2015-03-16 13:37:40
【问题描述】:
当我编写如下代码时
NSLog(@"%f",acos(cos(1)));
它返回 1 作为结果,但如果我尝试从度数而不是弧度获取结果,则面临以下问题
#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)
NSLog(@"%f",acos(cos(DEGREES_TO_RADIANS(1))));
然后它返回0.017453 而不是1。
如果我像下面这样写
NSLog(@"%f",acos(cos(DEGREES_TO_RADIANS(1)))*180/M_PI);
那么我得到了正确的1 结果。
但是如果我会像下面这样写
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]);
然后我得到0.998999 结果。
那么问题出在哪里呢?
请帮帮我
【问题讨论】:
标签: ios objective-c math trigonometry