floating_to_decimal man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]


       floating_to_decimal,	   single_to_decimal,	    double_to_decimal,
       extended_to_decimal,  quadruple_to_decimal  -  convert	floating-point
       value to decimal record

       #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);

       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


       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().

       See attributes(5) for descriptions of the following attributes:

       │MT-Level       │ MT-Safe	 │

       econvert(3C),  fconvert(3C),  gconvert(3C),  printf(3C),	  sprintf(3C),

				  Jun 7, 2005	       FLOATING_TO_DECIMAL(3C)

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net