printf_example.pas 509 B

123456789101112131415161718192021222324252627
  1. program printf_example;
  2. {$mode objfpc}{$H+}
  3. uses
  4. math, gmp;
  5. const
  6. N = 2;
  7. NBITS = 100;
  8. var
  9. f: mpf_t;
  10. bits, digits: integer;
  11. begin
  12. mpf_init2(f, NBITS);
  13. bits := mpf_get_prec(f);
  14. digits := floor(bits * LOG_10_2);
  15. mpf_sqrt_ui(f, N);
  16. mp_printf('Sqrt(%d) to %d digits (%d bits) = %.*Fg'#10, N, digits, bits, digits, @f);
  17. mpf_pow_ui(f, f, 2);
  18. mp_printf('Squared back = %.*Fg'#10, digits, @f);
  19. mpf_sub_ui(f, f, N);
  20. mp_printf('Minus %d = %.*Fg'#10, N, digits, @f);
  21. mpf_clear(f);
  22. end.