NAME
    display - set and/or return decimal digits for displaying numbers

SYNOPSIS
    display([d])

TYPES
    d           integer >= 0

    return      integer

DESCRIPTION
    When given an argument, this function sets the maximum number of
    digits after the decimal point to be printed in real or exponential
    mode in normal unformatted printing (print, strprint, fprint) or in
    formatted printing (printf, strprintf, fprintf) when precision is
    not specified.  The return value is the previous display digit value.

    When given no arguments, this function returns the current
    display digit value.

    The builtin function:

        display(d)
        display()

    is an alias for:

        config("display", d)
        config("display")

    The display digit value does not change the stored value of a number.
    It only changes how a stored value is displayed.

    Where rounding is necessary to display up to d decimal places,
    the type of rounding to be used is controlled by config("outround").

EXAMPLE
    ; print display(), 2/3
    20 ~0.66666666666666666667

    ; print display(40), 2/3
    20 ~0.6666666666666666666666666666666666666667

    ; print display(5), 2/3
    40 ~0.66667

    ; /*
       * NOTE: When displaying many digits after the decimal point
       *       be sure to set display(digits) (see 'help display') to
       *       large enough AND to set epsilon(eps) (see 'help epsilon')
       *       small enough (or if the function has a esp argument,
       *       give a eps argument that is small enough) to display
       *       the value correctly.
       */
    ; config("tilde", 1),;

    ; ## NOTE: display has too few digits and epsilon is not small enough

    ; display(12),;
    ; printf("%f\n", pi(1e-10));
    3.1415926536
    ; epsilon(1e-10),;
    ; printf("%f\n", pi());
    3.1415926536

    ; ## NOTE: display has too few digits yet epsilon is small enough

    ; display(12),;
    ; printf("%f\n", pi(1e-72));
    ~3.141592653590
    ; epsilon(1e-72),;
    ; printf("%f\n", pi());
    ~3.141592653590

    ; ## NOTE: display has enough digits but epsilon is not small enough

    ; display(72),;
    ; printf("%f\n", pi(1e-10));
    3.1415926536
    ; epsilon(1e-10),;
    ; printf("%f\n", pi());
    3.1415926536

    ; ## NOTE: display has enough digits and epsilon is small enough

    ; display(72),;
    ; printf("%f\n", pi(1e-72));
    3.141592653589793238462643383279502884197169399375105820974944592307816406
    ; epsilon(1e-72),;
    ; printf("%f\n", pi());
    3.141592653589793238462643383279502884197169399375105820974944592307816406

LIMITS
    d >= 0

LINK LIBRARY
    none

SEE ALSO
    config, epsilon, fprintf, printf, strprintf

## Copyright (C) 2004,2018,2021  Landon Curt Noll
##
## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License
## as published by the Free Software Foundation.
##
## Calc is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
## Public License for more details.
##
## A copy of version 2.1 of the GNU Lesser General Public License is
## distributed with calc under the filename COPYING-LGPL.  You should have
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
##
## Under source code control:   2004/07/25 23:50:40
## File existed as early as:    2004
##
## chongo <was here> /\oo/\     http://www.isthe.com/chongo/
## Share and enjoy!  :-)        http://www.isthe.com/chongo/tech/comp/calc/
