• C语言fmod()函数:对浮点数取模(求余)


    头文件:#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 ", fmod (5.3,2) );
    6. printf ( "fmod of 18.5 / 4.2 is %f ", 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

  • 相关阅读:
    Arthas 使用的各类方式
    1小时打造HaaS版小小蛮驴智能车
    Serverless 场景下 Pod 创建效率优化
    .net程序员的盲点(八):泛型
    altas(ajax)控件(五):日历控件Calendar
    altas(ajax)控件(六):CascadingDropDown 联动选择的下拉框
    altas(ajax)控件(二):悬浮面板控件AlwaysVisibleControl
    altas(ajax)控件(八):ConfirmButton确认对话框
    altas(ajax)控件(九):可拖动面板DragPanel
    altas(ajax)控件(三):动画制作控件AnimationExtender
  • 原文地址:https://www.cnblogs.com/xiaonanxia/p/5786668.html
Copyright © 2020-2023  润新知