返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言浮点函数中的modf和fmod怎么用
  • 829
分享到

C语言浮点函数中的modf和fmod怎么用

2023-06-29 06:06:57 829人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关C语言浮点函数中的modf和fmod怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。modf函数可以提取出浮点数的整数部分和小数部分。fmod函数可以返回两个浮点数相除的余数。它们的

这篇文章给大家分享的是有关C语言浮点函数中的modf和fmod怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

modf函数可以提取出浮点数的整数部分和小数部分。fmod函数可以返回两个浮点数相除的余数。它们的函数原型如下:

  double __cdecl modf(double _X,double *_Y);  double __cdecl fmod(double _X,double _Y);

这两个函数的功能看起来都挺简单的,但是为什么在C语言库中还要专门搞一个函数来计算呢?在使用这两个函数之前,首先看一个简单的浮点数相关的例子。

int main (){int i;float j=1.0;for(i=0; i<100; i++){j+=0.1;printf("%f \n",j);}return(0);}

给一个浮点数1.0每次累加0.1,总共累加100,感觉就是一个简单的加法运算,它的输出结果肯定也知道是什么了,下面来运行一下这个代码,输出结果如下:

C语言浮点函数中的modf和fmod怎么用

看到结果的第一眼,是不是感觉计算机算错了?怎么算着算着结果还给跑偏了。其实计算机并没有算错,程序运行的结果也是正确的。这里使用一个在线浮点数转换工具验证一下。

首先看一下浮点数1.0在内存的存储情况。

C语言浮点函数中的modf和fmod怎么用

再看一下浮点数2.8在内存的存储情况。

C语言浮点函数中的modf和fmod怎么用

通过对比可以看出1.0的实际存储值是1,和真实值是一样的。2.8的实际存储值是2.7999999523162841796875,和真实值已经产生了一点误差。那么这个误差是什么引起的呢?这里就要从浮点数的存储原理说起了。

通在C语言中,一个浮点数占32位,其中第一位表示符号位,0表示正数,1表示负数。紧接着8位表示指数部分,也就是系统会将浮点数表示为指数计数法,这8位就是指数部分的值,但是这里的指数是以2为底的。剩下的23位表示的就是尾数,也就是有效数据。

由于小数部分都是通过 2^a+2^b+2^c.......2^n 这种指数的累加来实现的,而指数的累加不一定可以百分百的等于原值,它只可能无限的接近原值。所以对于浮点数的操作不是像整数那样简单,为了保证操作浮点数时的精度,所以C语言的库函数才给我们提供了这两种浮点数操作的函数,方便使用。

接下来看一下modf函数的用法。

#include <stdio.h>#include <math.h>int main (){double x, fractpart, intpart;x = 8.123456;fractpart = modf(x, &intpart);printf("整数部分= %lf\n", intpart);printf("小数部分 = %lf \n", fractpart);return(0);}

modf函数有两个参数,第一个参数时待操作的浮点数,第二个参数用来存储浮点数的整数部分,它的返回值是浮点数的小数部分。

C语言浮点函数中的modf和fmod怎么用

通过输出结果可以看到,浮点数的整数部分和小数部分精度都没有丢失。

再看一下fmod函数的用法。

#include <stdio.h>#include <math.h>int main (){   float a, b;   int c;   a = 9.0;   b = 3.7;   c = 2;         printf("%f / %f 的余数是 %lf\n", a, b, fmod(a,b));   printf("%f / %d 的余数是 %lf\n", a, c, fmod(a,c));   return(0);}

fmod函数有两个参数,第一个参数是分子,第二个参数是分母,它返回第一个参数除以第二个参数的余数。

C语言浮点函数中的modf和fmod怎么用

通过输出的结果可以看到,浮点数的精度没有丢失。 

感谢各位的阅读!关于“C语言浮点函数中的modf和fmod怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: C语言浮点函数中的modf和fmod怎么用

本文链接: https://lsjlt.com/news/322909.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言浮点函数中的modf和fmod怎么用
    这篇文章给大家分享的是有关C语言浮点函数中的modf和fmod怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。modf函数可以提取出浮点数的整数部分和小数部分。fmod函数可以返回两个浮点数相除的余数。它们的...
    99+
    2023-06-29
  • C语言浮点函数中的modf和fmod详解
    modf函数可以提取出浮点数的整数部分和小数部分。fmod函数可以返回两个浮点数相除的余数。它们的函数原型如下: double __cdecl modf(double _X,do...
    99+
    2024-04-02
  • C语言浮点数怎么使用
    今天小编给大家分享一下C语言浮点数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、内存中的浮点数浮点数在内存的存储...
    99+
    2023-06-30
  • C语言怎么输出浮点数
    本篇内容主要讲解“C语言怎么输出浮点数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么输出浮点数”吧!使用 printf() 与 %f 输出浮点数...
    99+
    2023-06-17
  • C语言中字符型数据和浮点型数据怎么用
    本篇内容主要讲解“C语言中字符型数据和浮点型数据怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中字符型数据和浮点型数据怎么用”吧!字符型首先要了解ASII码,这里面有很多东东,但只要...
    99+
    2023-06-26
  • C语言中的浮点数据类型
    目录1. 处理带小数的数值2. 浮点类型 3. 浮点类型的sizeof1. 处理带小数的数值 我们来讨论一下类似于1.234567,0.00001,这类非整数的数据。我们先试试看,i...
    99+
    2024-04-02
  • c语言中浮点型怎么表示
    在C语言中,浮点型数据可以通过两种方式进行表示:1. 单精度浮点型(float):使用关键字`float`来声明单精度浮点型变量,占...
    99+
    2023-09-29
    c语言
  • C语言中怎么用浮点数计算三维空间的几何
    在C语言中,可以使用浮点数来表示三维空间中的点、向量、线段等对象,并进行相关的几何运算,如计算两点之间的距离、向量的长度、点与线段的...
    99+
    2024-04-28
    C语言
  • c语言浮点数输出的格式怎么控制
    在C语言中,可以使用printf函数来控制浮点数输出的格式。下面是一些常见的格式控制符:1. %f:输出浮点数,小数点后默认保留6位...
    99+
    2023-05-14
    c语言浮点数 c语言
  • C语言中函数怎么用
    这篇文章主要为大家展示了“C语言中函数怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中函数怎么用”这篇文章吧。函数函数定义百度百科对函数的定义:子程序在计算机科学中,子程序是一个大型...
    99+
    2023-06-25
  • C语言实现字符串转浮点函数的示例
      字符串不仅可以转换为整数,也可以转换为浮点数,字符串转浮点数函数原型如下: float __cdecl __mingw_strtof (const ...
    99+
    2024-04-02
  • C语言怎么实现两个浮点数相乘
    本篇内容主要讲解“C语言怎么实现两个浮点数相乘”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么实现两个浮点数相乘”吧!输入两个浮点数,计算乘积。实例#include <stdio....
    99+
    2023-06-17
  • C语言中字符型数据和浮点型数据介绍
    目录字符型1.来练练,输出一个字符A2.将小写字母转为大写字母浮点型先来看看float代码以下是双精度的浮点型double练习题新的一天又开始了哈,又是好好学习的一天啦。话不多说,直...
    99+
    2024-04-02
  • 怎么在C语言中引用C++的函数和变量
    本篇内容主要讲解“怎么在C语言中引用C++的函数和变量”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在C语言中引用C++的函数和变量”吧!引用C++语言的头文件需添加extern "...
    99+
    2023-06-17
  • C语言浮点数的二进制表示
    本篇内容介绍了“C语言浮点数的二进制表示”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!浮点数是属于有理数中某特定子集的数的数字表示,在计算机...
    99+
    2023-06-17
  • c语言中的pow函数怎么用
    pow 函数用于计算 x 的 y 次方。其语法为 pow(double x, double y),其中 x 为要计算幂次方的数字,y 为幂次方值。调用该函数并将 x 和 y 传递给它即可...
    99+
    2024-05-10
    c语言
  • C语言中itoa()和sprintf()函数怎么使用
    itoa()函数是将一个整数转换成字符串的函数,函数原型为:char *itoa(int value, char *str, int...
    99+
    2023-09-06
    C语言
  • C语言中sizeof函数怎么用
    这篇文章给大家分享的是有关C语言中sizeof函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.sizeof 函数简介在 C 语言中,char 字符串也是一种非常重要的数据类型,我们除了使用 sizeo...
    99+
    2023-06-25
  • c语言中isalpha函数怎么用
    在C语言中,isalpha函数用于检查一个字符是否为字母。该函数的原型为: #include int isalpha(int c)...
    99+
    2023-10-23
    c语言
  • c语言中sign函数怎么用
    c 语言中的 sign 函数用于获取浮点值符号,返回整数表示正、负或零。语法:sign(double x),参数为浮点值 x。返回值:x 大于 0 返回 1,小于 0 返回 -1,等于 ...
    99+
    2024-04-13
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作