fmod()函数 (对浮点数取模)

您所在的位置:网站首页 Vb取余函数mod fmod()函数 (对浮点数取模)

fmod()函数 (对浮点数取模)

2024-07-10 01:09| 来源: 网络整理| 查看: 265

头文件:#include

fmod() 用来对浮点数进行取模(求余),其原型为:    double fmod (double x);

设返回值为 ret,那么 x = n * y + ret,其中 n 是整数,ret 和 x 有相同的符号,而且 ret 的绝对值小于 y 的绝对值。如果 x = 0,那么 ret = NaN。

fmod 函数计算 x 除以 y 的 f 浮点余数,这样 x = i*y + f,其中 i 是整数,f 和 x 有相同的符号,而且 f 的绝对值小于 y 的绝对值。

fmod()与求模运算符%的对比

1) % 运算符% 只用于整型的计算,后一个数不能是0,参与运算的数据可正可负。

对于x%y ,计算之后结果的正负与 x 的符号相同,如果前者是较小的数,后者是较大的数,那么,结果直接为较小的数。例如:10%3=13%10=310%-3=1

-3%10=-3-10%-3=-1-3%-10=-3

3%13=3

0%3=00%-3=0

3%0  (×)Error!-3%0  (×)Error!10.0%3.0 (×)Error!  // 浮点型不能进行模运算

2) fmod()函数fmod()函数可以对浮点型数据进行取模运算,后一个数可为0,这时函数返回NaN。

计算后结果的符号与前者(x)相同,如果前者是较小的数,后者是较大的数,那么结果直接为较小的数。

举例如下:

float x=10.0; float y=-3.0; float z=3.0; result=fmod(x,z); printf("10.0%%3.0= %f/n",result); //1.0 result=fmod(z,x); printf("3.0%%10.0= %f/n",result); //3.0 result=fmod(x,y); printf("10.0%%-3.0= %f/n",result); //1.0 result=fmod(y,x); printf("-3.0%%10.0= %f/n",result); //-3.0 result=fmod(0,z); printf("0.0%%3.0= %f/n",result); //0.0 result=fmod(0,y); printf("0.0%%-3.0= %f/n",result); //0.0 result=fmod(3,13); printf("3%%-13= %f/n",result); //3 result=fmod(10.1,3.1); printf("10.1%%3.1= %f/n",result); //0.8 result=fmod(10.9,3.9); printf("10.9%%3.9= %f/n",result); //3.1

【实例】代码如下。

纯文本复制 #include #include int main () { printf ( "fmod of 5.3 / 2 is %f\n", fmod (5.3,2) ); printf ( "fmod of 18.5 / 4.2 is %f\n", fmod (18.5,4.2) ); return 0; }

输出结果:fmod of 5.3 / 2 is 1.300000fmod of 18.5 / 4.2 is 1.700000



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3