【发布时间】:2015-04-27 20:13:48
【问题描述】:
dataBuf[1] = acos(0.130f);
这是我正在运行的代码,但是当我打印出结果时,它显示为 1 而不是 82。dataBuf 是一个 int16_t 数组。所有其他 math.h 函数都可以正常进行转换,但 trig 函数不起作用。
【问题讨论】:
-
Trig 的单位是弧度,而不是度数。
-
并确认,我是个白痴
-
acos(0.130f) * 180 / M_PIl -
acos接受double类型的参数(并返回相同类型的结果)。acos(0.130)会更有意义。如果您真的想使用float,请使用acosf(0.130f)。为了将来参考,不要只告诉我们您打印了结果,而是告诉我们如何。一个常见错误(您显然没有在这里犯)是使用了错误的printf说明符。 -
@Keith Thompson 我在微控制器上使用它,并通过 UART 传输结果。我认为这会使问题变得更复杂,所以我决定不把它放进去。
标签: c int double type-conversion math.h