C语言从头学60——学习头文件math.h(三)

十二、函数 modf()

功能:函数 modf 把一个double数分解成整数部分和小数部分。

使用格式:modf (参1,参2);

参1:待分解的数

参2:指向double类型的指针,用于存放整数部分

返回值:返回小数部分,也是double类型

十三、函数scalbn()

功能:用来计算"x * a^n",a是宏 FLT_RADIX(一般等于2)。

使用格式:scalbn(参1,参2);

参1:double类型的x

参2:int型的n

返回值:返回double类型的计算结果

十四、函数round()

功能:将一个浮点数按照四舍五入原则圆整成整数。

使用格式:round(参1);

参1:double类型浮点数

返回值:返回圆整后的整数,但类型仍是double

十五、函数trunc()

功能:截去浮点数的小数部分,将剩下的整数部分返回。

使用格式:trunc(参1);

参1:double类型的浮点数

返回值:返回剩余的整数(类型仍为double)

说明:不管参数是正数、负数,还是小数无限接近于1,小数部分一律舍去。

十六、函数ceil()

功能:返回不小于其参数的最小整数。

使用格式:ceil(参1);

参1:double类型的数

返回值:返回值虽是整数,但仍是double类型。

说明:

a.对于正数不管小数部分多小,都是"见小数就进一"。

b.对于负数既不加一也不减一,只是把小数部分去除即实现其功能。

c.小数部分为零的数原样返回。

十七、floor()

功能:返回不大于参数的最大整数。

使用格式:floor(参1);

参1:double类型的数值

返回值:返回一个整数,类型仍是double。

说明:

a.对于正数相当于截去小数部分(与trunc同);

b.对于负数相当于给整数部分绝对值加1;

c.小数部分为0的数原样返回。

十八、函数fmod()

功能:返回两个数相除的余数,与运算符"%"相比,这个函数可用于浮点数取余。

使用格式:fmod(参1,参2);

参1:被除数,double类型

参2:除数,double类型

返回值:返回(参1/参2)的余数

十九、函数pow()

使用格式:pow(参1,参2);

参1:double类型参数

参2:double类型参数

返回值:返回double类型的参1的参2次方

二十、函数sqrt()

功能:为一个数开平方根。

使用格式:sqrt(参1);

参1:double类型数值,需大于等于0

返回值:返回double类型的平方根

二十一、函数cbrt()

功能:计算一个数的立方根。

使用格式:cbrt(参1);

参1:double类型的值

返回值:返回double类型的立方根

二十二、函数fabs()

功能:为一个数取绝对值

使用格式:fabs(参1);

参1:double类型数

返回值:返回参数的绝对值,类型仍是double

应用举例:

cpp 复制代码
#include<stdio.h>
#include<math.h>
#include<float.h> // 宏FLT_RADIX在其中定义
int main(void)
{
//实验函数modf()
    double x;
    double y = modf(123.456,&x);
    printf("123.456的整数:%f 小数:%f\n", x, y);//运行结果:123.456的整数:123.000000 小数:0.456000
//实验函数scalbn()
    x = 10.234;
    int n = 5;
    y = scalbn(x,n); //计算10.234*2^5
    printf("FLT_RADIX的值:%d\n", FLT_RADIX);//运行结果:FLT_RADIX的值:2
    printf("10.234*2^5=%f\n",y);//运行结果:10.234*2^5=327.488000
//实验函数round()
    x = 132.4567;
    y = round(x*100)/100; //四舍五入保留两位小数
    printf("132.4567保留两位小数:%.2f\n", y);//运行结果:132.4567保留两位小数:132.46
//实验函数trunc()
    x = 70.143;
    if (x == trunc(x))
    {
        printf("x没有小数\n");
    }
    else
    {
        printf("x带有小数\n");//运行结果:x带有小数
    }
//实验函数ceil()
    printf("ceil(100.000001)=%f\n", ceil(100.000001));//运行结果:ceil(100.000001)=101.000000
    printf("ceil(80.0)=%f\n", ceil(80.0)); //运行结果:ceil(80.0) = 80.000000
    printf("ceil(-25.2)=%f\n", ceil(-25.2));//运行结果:ceil(-25.2) = -25.000000
//实验函数floor()
    printf("floor(100.000001)=%f\n", floor(100.000001));//运行结果:floor(100.000001)=100.000000
    printf("floor(80.0)=%f\n", floor(80.0)); //运行结果:floor(80.0)=80.000000
    printf("floor(-25.2)=%f\n", floor(-25.2));//运行结果:floor(-25.2)=-26.000000
//实验fmod()
    x = fmod(3.4,1.1);
    printf("3.4/1.1的余数=%f\n", x);//运行结果:3.4/1.1的余数=0.100000
//实验函数pow()
    x = 3.1;
    y = 6.5;
    double z = pow(x, y);
    printf("3.1的6.5次方=%f\n", z);//运行结果:3.1的6.5次方=1562.611478
//实验函数cbrt()
    printf("100.36的立方根:%f\n",cbrt(100.36));//运行结果:100.36的立方根:4.647152
//实验函数fabs()
    x = fabs(3 - 3.69);
    printf("3-3.69的绝对值:%f\n",x);//运行结果:3-3.69的绝对值:0.690000
    getchar();
    return 0;
}
相关推荐
kid_sup19 分钟前
C语言错题本
c语言·开发语言
小林熬夜学编程2 小时前
C++第五十一弹---IO流实战:高效文件读写与格式化输出
c语言·开发语言·c++·算法
尸僵打怪兽3 小时前
软考(中级-软件设计师)(0919)
java·c语言·数据库·计算机网络·软考·多媒体·软件设计师
轩轶子4 小时前
【C-项目】网盘(一期,线程池版)
服务器·c语言
m0_631270404 小时前
高级c语言(五)
c语言·开发语言
2401_858286114 小时前
53.【C语言】 字符函数和字符串函数(strcmp函数)
c语言·开发语言
lib钱5 小时前
RO通讯数据包
c语言
Freestyle Coding8 小时前
使用rust自制操作系统内核
c语言·汇编·microsoft·rust·操作系统
标标大人10 小时前
c语言中的局部跳转以及全局跳转
android·c语言·开发语言
banjin15 小时前
AI驱动TDSQL-C Serverless 数据库技术实战营-ai学生选课系统数据分析
c语言·人工智能·serverless