Skip Navigation Links | |
Exit Print View | |
man pages section 3: Basic Library Functions Oracle Solaris 11.1 Information Library |
enable_extended_FILE_stdio(3C)
posix_spawnattr_getschedparam(3C)
posix_spawnattr_getschedpolicy(3C)
posix_spawnattr_getsigdefault(3C)
posix_spawnattr_getsigignore_np(3C)
posix_spawnattr_getsigmask(3C)
posix_spawnattr_setschedparam(3C)
posix_spawnattr_setschedpolicy(3C)
posix_spawnattr_setsigdefault(3C)
posix_spawnattr_setsigignore_np(3C)
posix_spawnattr_setsigmask(3C)
posix_spawn_file_actions_addclose(3C)
posix_spawn_file_actions_addclosefrom_np(3C)
posix_spawn_file_actions_adddup2(3C)
posix_spawn_file_actions_addopen(3C)
posix_spawn_file_actions_destroy(3C)
posix_spawn_file_actions_init(3C)
pthread_attr_getdetachstate(3C)
pthread_attr_getinheritsched(3C)
pthread_attr_getschedparam(3C)
pthread_attr_getschedpolicy(3C)
pthread_attr_setdetachstate(3C)
pthread_attr_setinheritsched(3C)
pthread_attr_setschedparam(3C)
pthread_attr_setschedpolicy(3C)
pthread_barrierattr_destroy(3C)
pthread_barrierattr_getpshared(3C)
pthread_barrierattr_setpshared(3C)
pthread_condattr_getpshared(3C)
pthread_condattr_setpshared(3C)
pthread_cond_reltimedwait_np(3C)
pthread_key_create_once_np(3C)
pthread_mutexattr_getprioceiling(3C)
pthread_mutexattr_getprotocol(3C)
pthread_mutexattr_getpshared(3C)
pthread_mutexattr_getrobust(3C)
pthread_mutexattr_setprioceiling(3C)
pthread_mutexattr_setprotocol(3C)
pthread_mutexattr_setpshared(3C)
pthread_mutexattr_setrobust(3C)
pthread_mutex_getprioceiling(3C)
pthread_mutex_reltimedlock_np(3C)
pthread_mutex_setprioceiling(3C)
pthread_rwlockattr_destroy(3C)
pthread_rwlockattr_getpshared(3C)
pthread_rwlockattr_setpshared(3C)
pthread_rwlock_reltimedrdlock_np(3C)
pthread_rwlock_reltimedwrlock_np(3C)
pthread_rwlock_timedrdlock(3C)
pthread_rwlock_timedwrlock(3C)
rctlblk_get_enforced_value(3C)
- 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
(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().
See attributes(5) for descriptions of the following attributes:
|
econvert(3C), fconvert(3C), gconvert(3C), printf(3C), sprintf(3C), attributes(5)