Share via


_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 數位。 可能於轉換中隱藏尾端零。

長度為_CVTBUFSIZEbuffer足可供任何浮點值使用。

這個函式會驗證它的參數。 如果 bufferNULL ,則會叫用不正確參數處理常式,如參數驗證 中所述 。 若允許繼續執行,此函式會將 errno 設為 EINVAL,並傳回 NULL

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

需求

常式 必要的標頭
_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) );
}
The following numbers were converted by _gcvt(value,12,buffer):
buffer: '-1234567890.12' (14 chars)
buffer: '-12345678901.2' (14 chars)
buffer: '-123456789012' (13 chars)
buffer: '-1.23456789012e+012' (19 chars)

buffer: '-12.3456789012' (14 chars)
buffer: '-1.23456789012' (14 chars)
buffer: '-0.123456789012' (15 chars)
buffer: '-1.23456789012e-002' (19 chars)

另請參閱

資料轉換
數學和浮點支援
atof, _atof_l, _wtof, _wtof_l
_ecvt
_fcvt