ecvt

Converts a floating-point number into a character string

Local Servers:nonblocking
Remote Servers:N/A
Classification:Other
Service:String Conversion

Syntax

  #include <stdlib.h>  
   
  char *ecvt  (  
     double    value,   
     int       ndigits,   
     int      *dec,   
     int      *sign);
  

Parameters

value
(IN) Specifies the value to be converted into a string.
ndigits
(IN) Specifies the desired total number of significant digits.
dec
(OUT) Points to the decimal point position relative to the first digit.
sign
(OUT) Points to a positive or negative sign:
  • 0 = Positive
  • Nonzero = Negative

Return Values

The ecvt function returns a pointer to a static buffer containing the converted string of digits. Note, both ecvt and fcvt use the same static buffer, except if you are using CLIB V 4.11 or above.

Remarks

The parameter ndigits specifies the number of significant digits desired. The converted number is rounded to ndigits of precision.

The character string contains only digits and is terminated by a NULL character. The integer pointed to by dec is filled in with a value indicating the position of the decimal point relative to the start of the string of digits. A zero or negative value indicates that the decimal point lies to the left of the first digit. The integer pointed to by sign contains 0 if the number is positive, and nonzero if the number is negative.

See Also

fcvt, gcvt, printf (Single and Intra-File Services)

Example

  #include <stdio.h>  
  #include <stdlib.h>  
   
  main()  
  {  
     char   str;  
     int    dec, sign;  
     str = ecvt( 123.456789, 6, &dec, &sign );  
     printf( "str=%s,  dec=%d, sign=%d\n", str,dec, sign );  
  }  
  

produces the following:

  str=123457, dec=3, sign=0