美文网首页
C标准库——

C标准库——

作者: Jack_6a46 | 来源:发表于2018-10-09 14:17 被阅读0次

    math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的功能都带有一个double类型的参数,且都返回double类型的结果。

    库宏

    HUGE_VAL 当函数的结果不可以表示为浮点数时。如果是因为结果的幅度太大以致于无法表示,则函数会设置errno为 ERANGE来表示范围错误,并返回一个由宏HUGE_VAL或者它的否定命名的一个特定的很大的值。

    库函数

    double acos(double x)
    double asin(double x)
    double atan(double x)
    double atan2(double y, double x) 返回以弧度表示的y/x 的反正切。y和x的值的符号决定了正确的象限。弧度区间为 [-PI, +PI].

    #define PI 3.1415926
    void main()
    {
    double x, y, ret, val;
    x = 5.0;
    y = 5.0;
    val = 180.0 / PI;
    ret = atan2(y, x) * val;
    printf("x = %lf, y = %lf 的反正切是 %.0lf度。\n", x, y, ret);
    getchar();
    }
    

    double cos(double x)
    double cosh(double x) 返回x的双曲余弦
    double sin(double x)
    double sinh(double x) 返回x的双曲正弦
    double tanh(double x) 返回x的双曲正切
    double exp(double x) 返回e的x次幂的值

    double frexp(double x, int *exponent) 把浮点数x分解成尾数和指数。返回值是尾数,并将指数存入exponent中。所得值是x = mantissa * 2 ^ exponent.
    返回值: 该函数返回规格化小数。如果参数x 不为零,则规则化小数是x的二次方,且它的绝对值范围从 0.5<= mantissa <1. 如果x为零,则规则化小数是零,且零存储在exp中。

    void main()
    {
    double x , fraction;
    int exponent;
    printf("请输入x: ");
    scanf("%lf", &x);
    fraction = frexp(x, &exponent);
    printf("%.2lf = %.2lf * 2^%d\n", x, fraction, exponent);
    getchar();
    }
    
    image.png
    image.png

    double Idexp(double x, int exponent) 返回x乘以2的exponent次幂
    返回值: 该函数返回 x * 2(exp)

    void main()
    {
    double x , ret;
    int exp;
    x = 0.99;
    exp = 8;
    ret = ldexp(x, exp);
    printf("%f * 2^%d = %f\n", x, exp, ret);    
    getchar();
    }
    
    image.png

    double log(double x) 返回x的自然对数(基数为e的对数)
    double log10(double x) 返回x的常用对数(基数为10的对数)
    double modf(double x, double *integer) 返回值为小数部分,并设置integer 为整数部分。

    void main()
    {
    double x, floatPart, intPart;
    x = 9.789;
    floatPart = modf(x, &intPart);
    printf("整数部分为:%lf\n", intPart);
    printf("小数部分为: %lf\n", floatPart);
    getchar();
    }
    
    image.png

    double pow(double x, double y) 返回x的y次幂
    double sqrt(double x) 返回x的平方根
    double ceil(double x) 返回大于等于x的最小的整数值
    double fabs(double x) 返回x的绝对值
    double floor(double x) 返回小于或等于x的最大的整数值

    void main()
    {
    double x;
    x = 9.789;
    printf("ceil value is %lf.\n", ceil(x));
    printf("floor value is %lf.\n", floor(x));
    getchar();
    }
    
    image.png

    double fmod(double x, double y) 返回x除以y的余数

    void main()
    {
    double x, y;
    x = 9.789;
    y = 3.8;
    printf("%lf / %lf 的余数是 %lf.\n", x, y, fmod(x, y));
    getchar();
    }
    
    image.png

    相关文章

      网友评论

          本文标题:C标准库——

          本文链接:https://www.haomeiwen.com/subject/erasaftx.html