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;
}
相关推荐
Heisenberg~26 分钟前
详解八大排序(五)------(计数排序,时间复杂度)
c语言·数据结构·排序算法
lb36363636363 小时前
分享一下arr的意义(c基础)(必看)(牢记)
c语言·知识点
南东山人5 小时前
一文说清:C和C++混合编程
c语言·c++
stm 学习ing6 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
茶猫_11 小时前
力扣面试题 - 25 二进制数转字符串
c语言·算法·leetcode·职场和发展
ö Constancy11 小时前
Linux 使用gdb调试core文件
linux·c语言·vim
lb363636363611 小时前
介绍一下strncmp(c基础)
c语言·知识点
wellnw11 小时前
[linux] linux c实现共享内存读写操作
linux·c语言
珹洺14 小时前
C语言数据结构——详细讲解 双链表
c语言·开发语言·网络·数据结构·c++·算法·leetcode
.Cnn15 小时前
用邻接矩阵实现图的深度优先遍历
c语言·数据结构·算法·深度优先·图论