跳转到内容

ecvtbuf, fcvtbuf : 双精度或浮点数转字符串

#include <stdio.h>
char *ecvtbuf(double val, int chars, int *decpt, int *sgn, char *buf);
char *fcvtbuf(double val, int decimals, int *decpt, int *sgn, char *buf);
```### 描述
ecvtbuf 和 fcvtbuf 生成表示双精度数 val 的(以空字符结尾的)数字字符串。
ecvtbuf 和 fcvtbuf 之间唯一的区别在于对第二个参数(chars 或 decimals)的解释。对于 ecvtbuf,第二个参数 chars 指定要写入的字符总数(这也是格式化字符串中的有效数字位数,因为这两个函数只写入数字)。对于 fcvtbuf,第二个参数 decimals 指定在小数点后要写入的字符数;val 整数部分的所有数字始终包含在内。
由于 ecvtbuf 和 fcvtbuf 在输出字符串中只写入数字,因此它们将小数点的位置记录在 *decpt 中,将数字的符号记录在 *sgn 中。格式化数字后,*decpt 包含小数点左侧的数字位数。如果数字为正,*sgn 包含 0;如果数字为负,*sgn 包含 1。对于这两个函数,您需要提供一个指向内存区域的指针 buf 来保存转换后的字符串。### 返回值
这两个函数均返回指向 buf 的指针,该字符串包含 val 的字符表示形式。
---
**权威来源**: BUSMASTER DITA help source `ecvtbuf.dita`, compiled into `BUSMASTER.CHM` with the application.