fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <math.h>
  4. int main() {
  5. double epsilon = 1.0;
  6. while(1.0 != 1.0 + 0.5 * epsilon)
  7. epsilon *= 0.5;
  8. printf("Sposob pierwszy: %.30f\n", epsilon);
  9.  
  10. typedef union {double f; int64_t i;} fi64;
  11. fi64 fi = {.f = 1.0};
  12. fi.i += 1;
  13. printf("Sposob drugi: %.30f\n", fi.f - 1.0);
  14.  
  15. printf("log_2(eps) = %f", log2(epsilon));
  16.  
  17. }
Success #stdin #stdout 0s 9416KB
stdin
Standard input is empty
stdout
Sposob pierwszy: 0.000000000000000222044604925031
Sposob drugi:    0.000000000000000222044604925031
log_2(eps) = -52.000000