在 ios 中的 acosh() 中得到意外结果

getting unexpected result in acosh() in ios

我的代码如下
NSLog(@"result=%f",acosh([@"30.0" doubleValue]* M_PI / 180));
结果来了
result=nan
其中 M_PI 是 x 代码中的预定义宏

30 * 圆周率 / 180 < 1。

根据 acosh 文档(例如此处:http://man7.org/linux/man-pages/man3/acosh.3.html、iOS 文档声明相同) 对于参数 < 1 acosh returns NaN。

如果您检查参数 acosh 的实际值:http://www.wolframalpha.com/input/?i=acosh%28pi+*+30.0+%2F+180%29 您会发现它是一个复数(实际上是虚数)。