ecvt , fcvt 或 gcvt 子例程
用途
将浮点数转换成字符串。
库
标准 C 库 (libc.a)
语法
#include <stdlib.h>
char *ecvt ( Value, NumberOfDigits, DecimalPointer, Sign;)
double Value;
int NumberOfDigits, *DecimalPointer, *Sign; char *fcvt (Value, NumberOfDigits, DecimalPointer, Sign;)
double Value;
int NumberOfDigits, *DecimalPointer, *Sign;
char *gcvt (Value, NumberOfDigits, Buffer;)
double Value;
int NumberOfDigits;
char *Buffer;描述
埃克夫特, 国际和 格夫特 子例程会将浮点数转换为字符串。
埃克夫特 子例程将 值 参数转换为以 null 结束的字符串并返回指向它的指针。 NumberOfDigits参数指定字符串中的位数。 低阶数字根据当前的舍入方式进行舍入。 ecvt 子例程将 DecimalPointer 参数指向的整数设置为相对于字符串开头的小数点的位置。 (负数表示小数点在字符串中给定的数字前面。) 小数点本身不包括在字符串中。 如果 值 参数为负值,那么 埃克夫特 子例程还会将 符号 参数指向的整数设置为非零值,否则将值设置为 0。
fcvt子程序的操作与ecvt子程序完全相同,只是在 C 或 FORTRAN F 格式输出由NumberOfDigits参数指定的位数时,会对正确位数进行四舍五入。
格夫特 子例程将 值 参数转换为以 null 结束的字符串,将其存储在 缓冲区 参数所指向的数组中,然后返回 缓冲区 参数。 gcvt子程序试图以 FORTRAN F 格式生成一个NumberOfDigits参数有效数字字符串。 如果无法执行此操作,那么将使用 E 格式。 格夫特 子例程禁止尾部零。 该字符串已准备好进行打印,请根据需要使用减号,小数点或指数来完成。 基数字符由当前语言环境确定 (请参阅 setlocale 子例程)。 如果未成功调用 setlocale 子例程,那么将使用缺省语言环境 POSIX。 缺省语言环境指定 . (句点) 作为基字符。 LC_NUMERIC 类别确定当前语言环境中的基字符的值。
对于浮点算术, 埃克夫特, 国际和 格夫特 子例程表示在 ANSI/IEEE 标准 754-1985 和 854-1987 中指定的以下特殊值:
| 项 | 描述 |
|---|---|
| 安静 NaN | 指示安静的非数字 (NaNQ) |
| 信令 NaN | 指示发信号 NaNS |
| 无穷大 | 指示 INF 值 |
与这些值中的每个值相关联的符号存储在 符号 参数中。
参数
| 项 | 描述 |
|---|---|
| VALUE | 指定部分双精度浮点值。 |
| NumberOfDigits | 指定该字符串中的数字位数。 |
| DecimalPointer | 指定小数点相对于字符串起始位置的位置。 |
| SIGN | 指定将与返回值关联的符号放置在 符号 参数中。 在 IEEE 浮点中,由于可以 0 0 进行签名,因此针对签名 0 适当地 0 了 符号 参数。 |
| 缓冲区 | 为字符串指定一个字符数组。 |