The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

floating_to_decimal (3)
  • >> floating_to_decimal (3) ( Solaris man: Библиотечные вызовы )
  •  

    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 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 == 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 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 == fixed_form and the value to be converted is large enough that the resulting string would contain more than DECIMAL_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(5) for descriptions of the following attributes:

    ATTRIBUTE TYPEATTRIBUTE VALUE

    MT-LevelMT-Safe

     

    SEE ALSO

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


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    ATTRIBUTES
    SEE ALSO


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру