_ecvt
转换 double 数字转换为字符串。此功能的一种较为安全的版本可用; _ecvt_s参见。
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
参数
value
将转换的数字。count
存储的位数。dec
存储请小数点位置。sign
转换数字的符号。
返回值
_ecvt 返回指向数值字符串;,如果发生错误,则为 null。
备注
_ecvt 函数将浮点数转换为字符字符串。value 参数是要转换的浮点数。此函数存储到 countvalue 数字为字符串并追加 null 字符 (“\ 0 ")。如果数字个数在 value 所基于的 count,低位数舍入。如果小于 count 数字有,该字符串填充零。
_ecvt 返回的总数不会超过 _CVTBUFSIZE。
仅可在该字符串存储。位置),并 value 的符号可以从 dec 和 sign 获取在调用之后。dec 参数指向给定位置的整数值小数点有关该字符串的开头。0 或负整数值指示在第一个数字的小数点集。sign 参数指向指示所转换的数字符号的整数。如果整数值为 0,该数字为正数的。否则,该数字为负。
在 _ecvt 和 _fcvt 之间的差异。 count 参数的解释。_ecvt 解释 count ,当数字的总数在输出字符串的,因此,而 _fcvt 解释 count 作为数字个数在以后小数点。
_ecvt 和 _fcvt 为将使用一个静态分配的缓冲区。每次调用这些实例之一销毁结果的前一个调用。
此功能验证其参数。如果 dec 或 sign 为 null,或者 count 为 0,无效参数调用处理程序,如 参数验证所述。如果执行允许继续, errno 设置为 EINVAL ,并返回 NULL。
要求
功能 |
必需的头 |
---|---|
_ecvt |
stdlib.h |
有关更多兼容性信息,请参见中介绍的 兼容性 。
示例
// crt_ecvt.c
// compile with: /W3
// This program uses _ecvt to convert a
// floating-point number to a character string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;
buffer = _ecvt( source, precision, &decimal, &sign ); // C4996
// Note: _ecvt is deprecated; consider using _ecvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}