2019-10-15 22:05发布
密耳 发表于 2016-12-23 17:28 强制转换
电脑小白 发表于 2016-12-26 10:53 我一般都是用的math.h 这个头文件。
最多设置5个标签!
这几天试了些,a = sin(PI/4) + cos(PI/4) + tan(PI/4) 这三个在一个式子里相加是不行的,但是强制转换成a =(float32_t) sin(PI/4) + (float32_t) cos(PI/4) + (float32_t) tan(PI/4) 就可以了。为什么呢?本身sin不就是支持输出浮点型吗?而且试了一下,a = (float32_t)b + (float32_t)c + (float32_t)也是可以的,但是b c d 本身就是float32_t型的,为什么非要强转一次呢?
printf还是只能打印一个或俩,强转也不行。
本想用arm_math.h内部的矩阵运算的,但是矩阵运算精度似乎只能到小数点后7位,不能满足我的精度要求,没办法用。
应该就是arm_math.h的问题,精度只有32位float,而我所有变量都定义成了double ,所以不管是运算还是输出都挂了。
一周热门 更多>