mdk 设置了double precison
设置为double precision。
//#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) //这里开启了fpu
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
//#endif
static double f1, f2, f3;
f1 = 0.1f;
f2 = 100.1f;
f3 = f1 + f2; //按道理应该是100.2
f3 得不到正确的值。看watch窗口等于 0.099999999.。。。。 这么简单的算式,居然都不行。。。 试了好几个工程都这样。莫名其妙。。。
实验了下 用float是正确的 用double就不行。。。 莫名其妙。
然后实验exp() 老是得不到正确的结果。。。 莫名其妙
把arm_cortexm7lfdp_math.lib加入了工程。
result = exp(2) 的值应该是 0.693147
这里如果result为double,那么得出来的是3.105036184601e+231。
如果result为float, 得出0.
搞了一晚上,要发疯了。
求助各位。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>