头文件:#include <math.h>

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=1
3%10=3
10%-3=1

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

3%13=3

0%3=0
0%-3=0

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

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

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

举例如下:

  1. float x=10.0;
  2. float y=-3.0;
  3. float z=3.0;
  4. result=fmod(x,z);
  5. printf("10.0%%3.0= %f/n",result); //1.0
  6. result=fmod(z,x);
  7. printf("3.0%%10.0= %f/n",result); //3.0
  8. result=fmod(x,y);
  9. printf("10.0%%-3.0= %f/n",result); //1.0
  10. result=fmod(y,x);
  11. printf("-3.0%%10.0= %f/n",result); //-3.0
  12. result=fmod(0,z);
  13. printf("0.0%%3.0= %f/n",result); //0.0
  14. result=fmod(0,y);
  15. printf("0.0%%-3.0= %f/n",result); //0.0
  16. result=fmod(3,13);
  17. printf("3%%-13= %f/n",result); //3
  18. result=fmod(10.1,3.1);
  19. printf("10.1%%3.1= %f/n",result); //0.8
  20. result=fmod(10.9,3.9);
  21. printf("10.9%%3.9= %f/n",result); //3.1

【实例】代码如下。

  1. #include <stdio.h>
  2. #include <math.h>
  3. int main ()
  4. {
  5. printf ( "fmod of 5.3 / 2 is %f\n", fmod (5.3,2) );
  6. printf ( "fmod of 18.5 / 4.2 is %f\n", fmod (18.5,4.2) );
  7. return 0;
  8. }

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

C语言fmod()函数:对浮点数取模(求余)的更多相关文章

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

    头文件:#include <math.h> fmod() 用来对浮点数进行取模(求余),其原型为:    double fmod (double x); 设返回值为 ret,那么 x = ...

  2. CodeForces 404 Marathon ( 浮点数取模 -- 模拟 )

    B. Marathon time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  3. doT.js实现混合布局,判断,数组,函数使用,取模,数组嵌套

    doT.js实现混合布局 数据结构 { "status": "1", "msg": "获取成功", "info ...

  4. 题解报告:hdu 1212 Big Number(大数取模+同余定理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1212 Problem Description As we know, Big Number is al ...

  5. 【转】C/C++求模求余运算符——2013-08-20

    http://blog.csdn.net/whealker/article/details/6203629 求模运算符(%),或称求余运算符,也就是数学上所谓的除法中的余数,%两侧均应为整数, |小| ...

  6. C语言:正负数之间取模运算(转载)

    如果 % 两边的操作数都为正数,则结果为正数或零:如果 % 两边的操作数都是负数,则结果为负数或零.C99 以前,并没有规定如果操作数中有一方为负数,模除的结果会是什么.C99 规定,如果 % 左边的 ...

  7. fmod函数和modf函数

    最近从博客上看到了一个fmod函数,结果又蹦出来一个modf函数 fmod函数: 头文件:#include<math.h> C库函数... fmod()用来对浮点数进行取模(求余),原型为 ...

  8. fmod()函数和modf()函数

    最近从博客上看到了一个fmod函数,结果又蹦出来一个modf函数 fmod()函数: 头文件:#include<math.h> C库函数... fmod()用来对浮点数进行取模(求余),原 ...

  9. 【转】C语言快速幂取模算法小结

    (转自:http://www.jb51.net/article/54947.htm) 本文实例汇总了C语言实现的快速幂取模算法,是比较常见的算法.分享给大家供大家参考之用.具体如下: 首先,所谓的快速 ...

随机推荐

  1. 毛毛虫学习日记_SQL

    五毛叶的SQL学习: 1.SELECT:(A 表名,a 字段) SELECT A.b, C.c , D.d(a,b,c,d,e...各种自己需要的字段) FROM  A(中心表名) LEFT /INN ...

  2. 终于在cmd窗口里出现了颜色了!!!感动ing……

    在窗口的中央打印三行字. 要求: 第一行绿色字 第二行绿底红色 第三行白底蓝色 assume cs:code, ds:data data segment db 'welcome to masm!' d ...

  3. 使用Githua管理代码

    原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 1.安装配置git服务器      a.安装ssh,因为git是基于ssh协议的,所以必须先装ssh: ...

  4. CE 内存申请

    char ch_ReadByte='H'; char *ptr_OneLineData; unsigned ); if ((ptr_OneLineData = (char *)malloc(bufsi ...

  5. SQL增删改语句常用

    创建table: create table tab_name( col1 type; 约束:主键-外键-非空-检查-唯一 col2 type; ); 删除表 : drop table tab_name ...

  6. BZOJ平推计划

    学习VFK大神推BZOJ,记录一下学习的东西 1004: burnside:一个置换群的等价计数=(每个置换的置换后等价情况数)/置换总数,每个置换的置换后等价情况数就是置换后没变的数 模意义下的除法 ...

  7. MYSQL权限表user操作

        MYSQL权限表user cmd中进人mysql找到mysql安装目录     E:\wamp\bin\mysql\mysql5.6.12\bin>mysql.exe -u 用户名  - ...

  8. Python内存数据库/引擎

    1 初探 在平时的开发工作中,我们可能会有这样的需求:我们希望有一个内存数据库或者数据引擎,用比较Pythonic的方式进行数据库的操作(比如说插入和查询). 举个具体的例子,分别向数据库db中插入两 ...

  9. 调用C++动态链接库出现错误

    解决方式:将托管 System.String 中的内容复制到非托管内存(Marshal.StringToHGlobalAnsi) class HttpsSend { [DllImport(" ...

  10. JAVA并发编程

    拜读了一篇很详尽的博文,特此转载http://www.cnblogs.com/dolphin0520/p/3920373.html, 并做了一些更正. 一.内存模型的相关概念. 大家都知道,计算机在执 ...