Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ seconvert(3BSD) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fprintf(3S)

fprintf(3S)

strtod(3C)






       econvert(3BSD)       (BSD System Compatibility)       econvert(3BSD)


       NAME
             econvert, fconvert, gconvert, seconvert, sfconvert, sgconvert
             - (BSD) output conversion

       SYNOPSIS
             /usr/ucb/cc [flag . . . ] file . . .
             #include <fp.h>
             char *econvert(double value,
                   int ndigit, int *decpt, int *sign,  char *buf);
             char *fconvert (double value,
                   int ndigit, int *decpt, int *sign,  char *buf);
             char *gconvert(double value,
                   int ndigit, int trailing, char *buf);
             char *seconvert(single *value,
                   int ndigit, int *decpt, int *sign,  char *buf);
             char *sfconvert(single *value,
                   int ndigit, int *decpt, int *sign,  char *buf);
             char *sgconvert(single *value,
                   int ndigit, int trailing, char *buf);

       DESCRIPTION
             econvert converts value to a NULL-terminated string of ndigit
             ASCII digits in buf and returns a pointer to buf.  buf should
             contain at least ndigit+1 characters.  The position of the
             decimal point relative to the beginning of the string is
             stored indirectly through decpt.  Thus buf == "314" and *decpt
             == 1 corresponds to the numerical value 3.14, while buf ==
             "314" and *decpt == -1 corresponds to the numerical value
             .0314.  If the sign of the result is negative, the word
             pointed to by sign is nonzero; otherwise it is zero.  The
             least significant digit is rounded.

             fconvert works much like econvert, except that the correct
             digit has been rounded as if for sprintf(%w.nf) output with
             n=ndigit digits to the right of the decimal point.  ndigit can
             be negative to indicate rounding to the left of the decimal
             point.  The return value is a pointer to buf.  buf should
             contain at least 310+max(0, ndigit) characters to accommodate
             any double-precision value.

             gconvert converts the value to a NULL-terminated ASCII string
             in buf and returns a pointer to buf.  It produces ndigit
             significant digits in fixed-decimal format, like
             sprintf(%w.nf), if possible, and otherwise in floating-decimal
             format, like sprintf(%w.ne); in either case buf is ready for
             printing, with sign and exponent.  The result corresponds to


                           Copyright 1994 Novell, Inc.               Page 1













      econvert(3BSD)       (BSD System Compatibility)       econvert(3BSD)


            that obtained by
                  (void) sprintf(buf,``%w.ng'',value) ;

            If trailing= 0, trailing zeros and a trailing point are
            suppressed, as in sprintf(%g).  If trailing!= 0, trailing
            zeros and a trailing point are retained, as in sprintf(%#g).

            seconvert, sfconvert, and sgconvert are single-precision
            versions of these functions, and are more efficient than the
            corresponding double-precision versions.  A pointer rather
            than the value itself is passed to avoid C's usual conversion
            of single-precision arguments to double.

            IEEE Infinities and NaNs are treated similarly by these
            functions.  NaN is returned for NaNs, and Inf or Infinity for
            Infinities.  The longer form is produced when ndigit is at
            least 8.

      REFERENCES
            fprintf(3S)

            Note: Most applications should use sprintf [see fprintf(3S)],
            strtod(3C) and strtold [see strtod(3C)] instead of these
            functions.
























                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026