round.c
上传用户:tsjrly
上传日期:2021-02-19
资源大小:107k
文件大小:1k
源码类别:

语音压缩

开发平台:

C/C++

  1. /* This routine takes in a floating point number and rounds it to */
  2. /* the nearest integer.    */
  3. int
  4. round(afloat)
  5. float afloat;
  6. {
  7. int rounded_int;
  8.   /* this will truncate afloat */
  9.   rounded_int = afloat;
  10.   /* positive and negative numbers are handled differently */
  11.   if (afloat < 0) 
  12.   {
  13.     /* if the fractional part is -.5 or less round down */
  14.     if (afloat - rounded_int <= -.5) rounded_int--;
  15.   }
  16.   else
  17.   {
  18.     /* if the fractional part is .5 or greater round up */
  19.     if (afloat - rounded_int >= .5) rounded_int++;
  20.   }    
  21.     
  22.   return(rounded_int);
  23. }
  24. #ifdef TEST
  25. #include <stdio.h>
  26. main()
  27. {
  28.     float x,y,z;
  29.     int i;
  30.     x = -2.000001;
  31.     y = -2.000000;
  32.     z = -1.999999;
  33.     for (i=0; i<16; i++) {
  34.         printf("%f -> %d     %f -> %d     %f -> %dn",
  35.                 x,round(x),y,round(y),z,round(z));
  36.         x = x + 0.25;
  37.         y = y + 0.25;
  38.         z = z + 0.25;
  39.         }
  40.     }
  41. #endif