Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sprintf(3S)



econvert(3)            C LIBRARY FUNCTIONS            econvert(3)



NAME
     econvert, fconvert, gconvert, seconvert,  sfconvert,  sgcon-
     vert - 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  posi-
     tion  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 nega-
     tive, 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 accomodate
     any double-precision value.  gconvert converts the value  to



             Last change: BSD Compatibility Package             1




econvert(3)            C LIBRARY FUNCTIONS            econvert(3)



     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 other-
     wise 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  ver-
          sions.   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.
































             Last change: BSD Compatibility Package             2



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