| Bill Allombert on Fri, 26 Oct 2012 22:50:33 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: %Ps of t_REAL |
On Thu, Oct 25, 2012 at 11:26:17PM +0200, Bill Allombert wrote:
> Hello PARI developers,
>
> ? \p10000
> realprecision = 10018 significant digits (10000 digits displayed)
> ? a=Pi;
> ? \p38
> realprecision = 38 significant digits
> ? printf("%s",a)
> 3.1415926535897932384626433832795028842
>
> I know this is the documented behaviour but I cannot say I ever liked it.
> I would much prefer to get 10018 digits. (If I wanted 38 digits, I would
> do the computation to 38 digits, or I would write %.38s).
>
> It is worse in library mode where you do not have any control over
> realprecision. It is especially painful with err_printf which is
> used for debugging, when the interesting digits are discarded.
We discussed about changing the behaviour, but there are two problems:
1) %g convert the data to t_REAL:
? printf("%g",12)
12.000000000000000000000000000000000000
2) "%s" does not allow to specify a precision. Instead:
* s: Convert to a character string. If a precision is given, no more
than the specified number of characters are written.
? printf("%.8s",[Pi,23])
[3.14159
So we are stuck.
Cheers,
Bill.