floating_to_decimal(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

floating_to_decimal(3c)

floating_to_decimal(3C)  Standard C Library Functions  floating_to_decimal(3C)

NAME
       floating_to_decimal,    single_to_decimal,    double_to_decimal,    ex‐
       tended_to_decimal, quadruple_to_decimal - convert floating-point  value
       to decimal record

SYNOPSIS
       #include <floatingpoint.h>

       void single_to_decimal(single *px, decimal_mode *pm,
            decimal_record *pd, fp_exception_field_type *ps);


       void double_to_decimal(double *px, decimal_mode *pm,
            decimal_record *pd, fp_exception_field_type *ps);


       void extended_to_decimal(extended *px, decimal_mode *pm,
            decimal_record *pd, fp_exception_field_type *ps);


       void quadruple_to_decimal(quadruple *px, decimal_mode *pm,
            decimal_record *pd, fp_exception_field_type *ps);

DESCRIPTION
       The  floating_to_decimal  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 IEEE 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, de‐
       pending  upon whether pd→sign is 0 or −1. pd→ds has at least one and no
       more than DECIMAL_STRING_LENGTH-1 significant digits because one  char‐
       acter is used to terminate the string with a null.


       pd→ds  is  correctly  rounded  according  to the IEEE rounding modes in
       pm→rd. *ps has fp_inexact set  if  the  result  was  inexact,  and  has
       fp_overflow  set  if the string result does not fit in pd→ds because of
       the limitation DECIMAL_STRING_LENGTH.


       If pm→df == floating_form, then pd→ds always contains  pm→ndigits  sig‐
       nificant  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 == fixed_form and pm→ndigits >= 0, then the decimal  value  is
       rounded at pm→ndigits digits to the right of the decimal point. For ex‐
       ample, 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  ==  fixed_form  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 exam‐
       ple, 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 == fixed_form and the value to be converted is large enough
       that   the   resulting   string   would   contain   more   than   DECI‐
       MAL_STRING_LENGTH−1  digits, then the string placed in pd→ds is limited
       to exactly DECIMAL_STRING_LENGTH-1 digits (by moving the place at which
       the value is rounded further left if need be), pd→exponent is  adjusted
       accordingly 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 double_to_decimal().

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ MT-LevelMT-Safe


SEE ALSO
       econvert(3C),  fconvert(3C), gconvert(3C), printf(3C), sprintf(3C), at‐
       tributes(7)

Oracle Solaris 11.4               7 Jun 2005           floating_to_decimal(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3