_gcvt

将浮点值转换为字符串,存在缓冲区。 该函数的一个更安全版本可利用;请参阅 _gcvt_s

char *_gcvt( 
   double value,
   int digits,
   char *buffer 
);

参数

  • value
    要转换的值。

  • digits
    存储的有效位数。

  • buffer
    结果的存储位置。

返回值

_gcvt返回指向数字字符串的指针。

备注

_gcvt 函数将浮点 value转换为字符字符串( 包含小数点和一种符号字节),并存储在buffer中。 buffer 应该足够大以容纳转换的值和自动追加的终止 null 字符。 如果使用digits的缓冲区大小+1,函数覆盖缓冲区的末尾。 这是因为,转换的字符串包含小数点,并且可包含符号和指数信息。 没有规定溢出。 _gcvt 尝试产生十进制格式的digits数值。 如果不能,它产生指数格式digits的数值。 在转换中,尾随零转换可能被抑制。

buffer的_CVTBUFSIZE长度对于任何浮点数值都是足够的。

此函数验证其参数。 如果 buffer 是 NULL,则会调用无效参数处理程序,如 参数验证 中所述。 如果允许执行继续,则该函数设置 errno 为 EINVAL 并返回 NULL。

要求

例程

必需的标头

_gcvt

<stdlib.h>

有关更多兼容性信息,请参见“简介”中的兼容性

示例

// crt_gcvt.c
// compile with: /W3
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main( void )
{
   char buffer[_CVTBUFSIZE];
   double value = -1234567890.123;
   printf( "The following numbers were converted by _gcvt(value,12,buffer):\n" );
   _gcvt( value, 12, buffer ); // C4996
   // Note: _gcvt is deprecated; consider using _gcvt_s instead
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );

   printf( "\n" );
   value = -12.34567890123;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
}
  

.NET Framework 等效项

System::Convert::ToString

请参见

参考

数据转换

浮点支持

atof、_atof_l、_wtof、_wtof_l

_ecvt

_fcvt