summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/gmp/examples/printf_example2.pas
blob: 24260a0b88ede6760ba69207dbd9719e6c48ed1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program printf_example2;

{$mode objfpc}{$H+}

uses
  sysutils, math, gmp;

const
  N = 2;
  NBITS = 100;

var
  f: mpfloat;
  bits, digits: integer;
begin
  f_set_default_prec(NBITS);
  bits := f_get_default_prec;
  digits := floor(bits * LOG_10_2);
  f := f_sqrt_ui(N);
  writeln(format('Sqrt(%d) to %d digits (%d bits) = %s', [N, digits, bits, string(f)]));
  f := f ** 2;
  writeln(format('Squared back = %s', [string(f)]));
  f -= N;
  writeln(format('Minus %d = %s', [N, string(f)]));
end.