MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions              floatingtodecimal(3C)



NAME
     floatingtodecimal,  singletodecimal,  doubletodecimal,
     extendedtodecimal,    quadrupletodecimal    -    convert
     floating-point value to decimal record

SYNOPSIS
     #include 

     void singletodecimal(single *px, decimalmode *pm,
          decimalrecord *pd, fpexceptionfieldtype *ps);


     void doubletodecimal(double *px, decimalmode *pm,
          decimalrecord *pd, fpexceptionfieldtype *ps);


     void extendedtodecimal(extended *px, decimalmode *pm,
          decimalrecord *pd, fpexceptionfieldtype *ps);


     void quadrupletodecimal(quadruple *px, decimalmode *pm,
          decimalrecord *pd, fpexceptionfieldtype *ps);


DESCRIPTION
     The floatingtodecimal functions convert the floating-point
     value  at  *px  into  a decimal record at *pd, observing the
     modes specified in *pm and setting  exceptions  in  *ps.  If
     there are no IE exceptions, *ps will be zero.


     If *px is zero, infinity, or NaN,  then  only  pd->sign  and
     pd->fpclass  are  set. Otherwise pd->exponent and pd->ds are
     also set so that

       (sig)*(pd->ds)*10**(pd->exponent)



     is a correctly rounded approximation to *px, where sig is ]1
     or  -1,  depending upon whether pd->sign is  0 or -1. pd->ds
     has at least one and no  more  than  DECIMALSTRINGLENGTH-1
     significant  digits  because  one  character is used to ter-
     minate the string with a null.


     pd->ds is correctly rounded according to the  IE  rounding
     modes  in  pm->rd.  *ps has fpinexact set if the result was
     inexact, and has fpoverflow set if the string  result  does
     not    fit    in    pd->ds   because   of   the   limitation
     DECIMALSTRINGLENGTH.




SunOS 5.11           Last change: 7 Jun 2005                    1






Standard C Library Functions              floatingtodecimal(3C)



     If pm->df ==  floatingform,  then  pd->ds  always  contains
     pm->ndigits  significant  digits.  Thus  if *px == 12.34 and
     pm->ndigits == 8, then  pd->ds  will  contain  12340000  and
     pd->exponent will contain -6.


     If pm->df == fixedform  and  pm->ndigits  >=  0,  then  the
     decimal  value is rounded at pm->ndigits digits to the right
     of the decimal point. For  example,  if  *px  ==  12.34  and
     pm->ndigits   ==   1,  then  pd->ds  will  contain  123  and
     pd->exponent will be set to -1.


     If pm->df == fixedform and pm->ndigits< 0, then the decimal
     value  is  rounded at -pm->ndigits digits to the left of the
     decimal point, and pd->ds is padded with trailing  zeros  up
     to the decimal point. For example, if *px == 12.34 and pm->n
     digits == -1, then pd->ds will contain 10  and  pd->exponent
     will be set to 0.


     When pm->df == fixedform and the value to be  converted  is
     large  enough  that the  resulting string would contain more
     than DECIMALSTRINGLENGTH-1 digits, then the string  placed
     in  pd->ds  is  limited  to  exactly DECIMALSTRINGLENGTH-1
     digits (by moving the place at which the  value  is  rounded
     further  left  if need be), pd->exponent is adjusted accord-
     ingly and the overflow flag is set in *ps.


     pd->more is not used.


     The econvert(3C),  fconvert(3C),  gconvert(3C),  printf(3C),
     and sprintf(3C) functions all use doubletodecimal().

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



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     MT-Level                     MT-Safe                     
    


SEE ALSO
     econvert(3C),   fconvert(3C),   gconvert(3C),    printf(3C),
     sprintf(3C), attributes(5)



SunOS 5.11           Last change: 7 Jun 2005                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™