2025年modf和fmod函数

modf和fmod函数在计算机中 1 0 的实际存储值是 1 和真实值一致 而 2 8 的实际存储值是 2 在 C 语言中 一个浮点数占 32 位 其中第一位表示符号位 0 表示正数 1 表示负数 紧接着 8 位表示指数部分 也就是系统会将浮点数表示为指数计数法 这 8

大家好,我是讯享网,很高兴认识大家。

在计算机中,1.0的实际存储值是1,和真实值一致。而2.8的实际存储值是2.。

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

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

modf函数提取出浮点数的整数部分和小数部分。

fmod函数返回两个浮点数相除的余数。


讯享网

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

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

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

#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函数有两个参数,第一个参数是分子,第二个参数是分母,它返回第一个参数除以第二个参数的余数

求浮点数的最大公约数

讯享网double GCD(double x, double y) { if (0 == y) return x; else return GCD(y, fmod(x, y)); }

小讯
上一篇 2025-01-11 21:32
下一篇 2025-01-11 22:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/127922.html