1*9930Ssam /* @(#)floor.c 4.1 12/25/82 */ 2*9930Ssam 3*9930Ssam /* 4*9930Ssam * floor and ceil-- greatest integer <= arg 5*9930Ssam * (resp least >=) 6*9930Ssam */ 7*9930Ssam 8*9930Ssam double modf(); 9*9930Ssam 10*9930Ssam double floor(d)11*9930Ssamfloor(d) 12*9930Ssam double d; 13*9930Ssam { 14*9930Ssam double fract; 15*9930Ssam 16*9930Ssam if (d<0.0) { 17*9930Ssam d = -d; 18*9930Ssam fract = modf(d, &d); 19*9930Ssam if (fract != 0.0) 20*9930Ssam d += 1; 21*9930Ssam d = -d; 22*9930Ssam } else 23*9930Ssam modf(d, &d); 24*9930Ssam return(d); 25*9930Ssam } 26*9930Ssam 27*9930Ssam double ceil(d)28*9930Ssamceil(d) 29*9930Ssam double d; 30*9930Ssam { 31*9930Ssam return(-floor(-d)); 32*9930Ssam } 33