Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

setlocale(3C)

printf(3S)

hpnls(5)

lang(5)

ldcvt(3C)

NAME

_ldecvt(), _ldecvt_r(), _ldfcvt(), _ldfcvt_r(), _ldgcvt() − convert long-double floating-point number to string

SYNOPSIS

#include <stdlib.h>

char *_ldecvt(long_double value, int ndigit, int *decpt, int *sign);

int _ldecvt_r(

long_double value,
int ndigit,
int *decpt,
int *sign,
char *buffer,
int buflen);

char *_ldfcvt(long_double value, int ndigit, int *decpt, int *sign);

int _ldfcvt_r(

long_double value,
int ndigit,
int *decpt,
int *sign,
char *buffer,
int buflen);

char *_ldgcvt(long_double value, int ndigit, char *buf);

DESCRIPTION

_ldecvt() converts value to a null-terminated string of ndigit digits and returns a pointer to the string.  The high-order digit is non-zero, unless the value is zero.  The low-order digit is rounded.  The position of the radix character relative to the beginning of the string is stored indirectly through decpt (negative means to the left of the returned digits).  The radix character is not included in the returned string.  If the sign of the result is negative, the word pointed to by sign is non-zero; otherwise it is zero. 

_ldecvt_r() is identical to _ldecvt(), except that the result string is passed back in the supplied buffer.  If the buffer is of insufficient length, -1 is returned.  If the operation is successful, 0 is returned. 

_ldfcvt() is identical to _ldecvt(), except that the correct digit has been rounded for printf %Lf (FORTRAN F-format) output of the number of digits specified by ndigit.

_ldfcvt_r() is identical to _ldfcvt(), except that the result string is passed back in the supplied buffer.  If the buffer is of insufficient length, -1 is returned.  If the operation is successful, 0 is returned. 

_ldgcvt() Convert the value to a null-terminated string in the array pointed to by buf and return buf. It produces ndigit significant digits in FORTRAN F-format if possible, or E-format otherwise.  A minus sign, if required, and a radix character are included in the returned string.  Trailing zeros are suppressed.  The radix character is determined by the currently loaded NLS environment (see setlocale(3C)). If setlocale() has not been called successfully, the default NLS environment, "C" is used (see lang(5)). The default environment specifies a period (.) as the radix character. 

RETURN VALUE

NaN is returned for Not-a-Number, and ±INFINITY is returned for Infinity. 

WARNINGS

The values returned by _ldecvt() and _ldfcvt() point to a single static-data array whose content is overwritten by each call. 

_ldecvt() and _ldfcvt() are unsafe in multi-thread applications.  _ldecvt_r() and _ldfcvt_r() are MT-Safe and should be used instead. 

AUTHOR

_ldecvt(), _ldfcvt(), and _ldgcvt() were developed by HP. 

SEE ALSO

setlocale(3C), printf(3S), hpnls(5), lang(5). 

EXTERNAL INFLUENCES

Locale

The LC_NUMERIC category determines the radix character. 

International Code Set Support

Single-byte character code sets are supported. 

Hewlett-Packard Company  —  HP-UX Release 10.20:  July 1996

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026