Hi Alejandro,

None of the below may apply to GNU's bc and dc.  I prefer Unix.

> bc(1) on the contrary, is likely to be using 'long double', for being
> able to provide so many digits.

No, bc doesn't use a C language or machine type.  The precision can
be set.

    $ bc -l
    scale=42
    l(1114112) / l(2)
    20.087462841250339408254066010810404354011270
    $

bc's l() function is written in bc rather than a built-in and can be
read for fun.  bc uses dc(1) to do the work and can be asked to ‘compile
only’ with -c.  dc has k to set the precision; bc's scale simply uses k.

dc uses a byte to store each pair of decimal digits.  This allows
overflow within the byte during calculations and makes it quick to
perform the common case of formatting the many-byte number to
decimal-digit text.

-- 
Cheers, Ralph.

Reply via email to