![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Разобрался со статьей про GMP. Автор перепутал в примере перевода длинного числа в строку всё, вообще всё, Наташ.
Пример -
Пример -
Var f: mpf_t; n: longword; pc: PChar; s: AnsiString; Begin mpf_set_default_prec(256); mpf_init_set_str(f, '3.141592653589793238462643383279502884197169399375105820974944', 10); pc := mpf_get_str(NIL, n, 0, f); s := pc; s := Insert('.', s, n+1); WriteLn(s); End; 1) mpf_get_str имеет пять параметров, на не четыре - mpf_get_str(str:pchar; out exp:mp_exp_t; base:longint; digits:sizeuint; var op:mpf_t):pchar; 2) вызов у автора выглядит так - pc:=mpf_get_str(nil:pchar, n:longword, 0:sizeuint, f:mpf_t); Если под n разумеется экспонента, то она должна быть типа mp_exp_t, а не longword. Если под n разумеется система счисления, то n должен быть равен 10, например 3) Insert всегда был процедурой, а не функцией. И пример должен быть таким - var pc:PChar; s:AnsiString; exp:mp_exp_t; f: mpf_t; begin mpf_set_default_prec(256); mpf_init_set_str(f, '3.141592653589793238462643383279502884197169399375105820974944', 10); exp:=0; pc:=mpf_get_str(nil,exp,10,0,f); s:=pc; insert('.',s,exp+1); writeln(s); end; https://yadi.sk/d/XQh0Sp-skMuCkw