william_rain 发表于 2013-7-21 17:55:20

有没有高精度的sin函数

调用math.h库中的sin(30°) = 0.539060

#include <stdio.h>
#include <math.h>        //包含数学函数库用到sin(30°)

#define PI                3.41592654        //宏定义π

void main(void){
        double value = 0;        //三角函数值

        int angle = 30;                //角度

        value = sin((double)angle * PI / 180.0);        //(double)angle 强制转换为double
                                                                                                // sin()函数的参数必须是弧度
       
        printf("%f\n", value);

}

没有没别的方法可以得到比较精确的sin和cos函数值!

zf12862177 发表于 2013-7-21 18:09:42

想要更高精度的就只有,自己将sin展开成 泰勒级数,先预先求得分母的数值,然后再通过浮点乘法计算。可以求很高精度

longfeix86 发表于 2013-7-21 18:57:43

楼上正解,不过会不会拖死CPU

coleyao 发表于 2013-7-21 20:20:38

查表加插值计算,不过稍微有点复杂!

william_rain 发表于 2013-7-21 20:59:49

longfeix86 发表于 2013-7-21 18:57 static/image/common/back.gif
楼上正解,不过会不会拖死CPU

上位机处理!

pspice 发表于 2013-7-22 19:46:42

兄弟,你的PI值根本就有问题:
#define PI                3.41592654
应该是:
#define PI                3.141592654

改后的结果是:0.50000

william_rain 发表于 2013-7-22 21:24:04

pspice 发表于 2013-7-22 19:46 static/image/common/back.gif
兄弟,你的PI值根本就有问题:
#define PI                3.41592654
应该是:


好吧! 我错了!

devcang 发表于 2013-7-23 08:49:28

#define PI                3.1415926535897932      //宏定义π         {:titter:}
页: [1]
查看完整版本: 有没有高精度的sin函数