fmod.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 32 行

C
32
字号
#include <u.h>#include <libc.h>/* * floating-point mod function without infinity or NaN checking */doublefmod (double x, double y){	int sign, yexp, rexp;	double r, yfr, rfr;	if (y == 0)		return x;	if (y < 0)		y = -y;	yfr = frexp(y, &yexp);	sign = 0;	if(x < 0) {		r = -x;		sign++;	} else		r = x;	while(r >= y) {		rfr = frexp(r, &rexp);		r -= ldexp(y, rexp - yexp - (rfr < yfr));	}	if(sign)		r = -r;	return r;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?