十二、函数 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;
}