round.c
上传用户:tsjrly
上传日期:2021-02-19
资源大小:107k
文件大小:1k
- /* This routine takes in a floating point number and rounds it to */
- /* the nearest integer. */
- int
- round(afloat)
- float afloat;
- {
- int rounded_int;
- /* this will truncate afloat */
- rounded_int = afloat;
- /* positive and negative numbers are handled differently */
- if (afloat < 0)
- {
- /* if the fractional part is -.5 or less round down */
- if (afloat - rounded_int <= -.5) rounded_int--;
- }
- else
- {
- /* if the fractional part is .5 or greater round up */
- if (afloat - rounded_int >= .5) rounded_int++;
- }
-
- return(rounded_int);
- }
- #ifdef TEST
- #include <stdio.h>
- main()
- {
- float x,y,z;
- int i;
- x = -2.000001;
- y = -2.000000;
- z = -1.999999;
- for (i=0; i<16; i++) {
- printf("%f -> %d %f -> %d %f -> %dn",
- x,round(x),y,round(y),z,round(z));
- x = x + 0.25;
- y = y + 0.25;
- z = z + 0.25;
- }
- }
- #endif