RicardasSim

float compare test

Jan 15th, 2019
586
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <stdbool.h>
  5. #include <float.h>  //FLT_EPSILON
  6.  
  7. bool fltAEqual(float a, float b, float epsilon)
  8. {
  9.     return fabs(a-b) < epsilon;
  10. }
  11.  
  12. bool fltCmp2(float a, float b, unsigned int precision)
  13. {
  14.    
  15.     int i1, i2;
  16.  
  17.     if (a > 0) i1 = (int)(a * precision + .5);
  18.     else i1 = (int)(a * precision - .5);
  19.    
  20.     if (b > 0) i2 = (int)(b * precision + .5);
  21.     else i2 = (int)(b * precision - .5);
  22.    
  23.     return (i1 == i2);
  24. }
  25.  
  26.  
  27. int main (int argc, char **argv)
  28. {
  29.  
  30.  
  31.     if(fltAEqual(0.0f, 0.0f, FLT_EPSILON)) printf("Equal\n");
  32.     else printf("Not equal\n");
  33.  
  34.     if(fltCmp2(0.0f, 0.0f, 100000)) printf("Equal\n");
  35.     else printf("Not equal\n");
  36.    
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment