Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ econvert(3) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sprintf(3S)



econvert(3)        UNIX System V(BSD Compatibility Package)         econvert(3)


NAME
      econvert, fconvert, gconvert, seconvert, sfconvert, sgconvert - output
      conversion

SYNOPSIS
      cc [ flag. . . ] file . . .  -lucb
      #include <floatingpoint.h>

      char *econvert(value, ndigit, decpt, sign, buf)
      double value;
      int ndigit, *decpt, *sign;
      char *buf;

      char *fconvert(value, ndigit, decpt, sign, buf)
      double value;
      int ndigit, *decpt, *sign;
      char *buf;

      char *gconvert(value, ndigit, trailing, buf)
      double value;
      int ndigit;
      int trailing;
      char *buf;

      char *seconvert(value, ndigit, decpt, sign, buf)
      single *value;
      int ndigit, *decpt, *sign;
      char *buf;

      char *sfconvert(value, ndigit, decpt, sign, buf)
      single *value;
      int ndigit, *decpt, *sign;
      char *buf;

      char *sgconvert(value, ndigit, trailing, buf)
      single *value;
      int ndigit;
      int trailing;
      char *buf;

DESCRIPTION
      econvert converts the 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.





10/89                                                                    Page 1







econvert(3)        UNIX System V(BSD Compatibility Package)         econvert(3)


      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 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 NaN, and ``Inf'' or ``Infinity'' for Infinity.
      The longer form is produced when ndigit > 8.

SEE ALSO
      sprintf(3S) in the Programmer's Reference Manual























Page 2                                                                    10/89





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