seconvert(3C)




NAME

     econvert, fconvert, gconvert, seconvert,  sfconvert,  sgcon-
     vert, qeconvert, qfconvert, qgconvert - output conversion


SYNOPSIS

     #include <floatingpoint.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);

     char *qeconvert(quadruple *value, int  ndigit,  int  *decpt,
     int *sign, char *buf);

     char *qfconvert(quadruple *value, int  ndigit,  int  *decpt,
     int *sign, char *buf);

     char *qgconvert(quadruple *value, int ndigit, int  trailing,
     char *buf);


DESCRIPTION

     The econvert()  function  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 char-
     acters.  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 numeri-
     cal 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.

     The fconvert() function 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 round-
     ing 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.

     The gconvert()  function  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  for-
     mat,  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).

     The seconvert(), sfconvert(), and sgconvert() functions  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  dou-
     ble.

     The qeconvert(), qfconvert(), and qgconvert() functions  are
     quadruple-precision  versions of these functions. The qfcon-
     vert() function can overflow the  decimal_record  field   ds
     if  value is too large. In that case, buf[0] is set to zero.

     The ecvt(), fcvt() and  gcvt()  functions  are  versions  of
     econvert(),  fconvert(),  and gconvert(), respectively, that
     are documented on the ecvt(3C) manual page.  They constitute
     the default implementation of these functions and conform to
     the X/Open CAE Specification, System Interfaces and Headers,
     Issue 4, Version 2.


USAGE

     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.


ATTRIBUTES

     See attributes (5) for descriptions of the following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | MT-Level                    | MT-Safe                     |
    |_____________________________|_____________________________|


SEE ALSO

     ecvt(3C),sprintf(3C), attributes(5)


Man(1) output converted with man2html