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

개요

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

floating_to_decimal(3c)

Standard C Library Functions                           floating_to_decimal(3C)



NAME
       floating_to_decimal,        single_to_decimal,       double_to_decimal,
       extended_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,
       depending 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
       character 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
       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 == 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),
       attributes(7)



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