_gcvt_gcvt

浮動小数点値を文字列に変換し、バッファーに格納します。Converts a floating-point value to a string, which it stores in a buffer. この関数のセキュリティが強化されたバージョンについては、「_gcvt_s」を参照してください。A more secure version of this function is available; see _gcvt_s.

構文Syntax

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

パラメーターParameters

valuevalue
変換する値。Value to be converted.

数字digits
格納される有効桁数。Number of significant digits stored.

バッファーbuffer
結果の格納場所。Storage location for the result.

戻り値Return Value

_gcvt桁の数字の文字列へのポインターを返します。_gcvt returns a pointer to the string of digits.

RemarksRemarks

_Gcvt関数は、浮動小数点に変換を文字の文字列 (を小数点、符号バイトを含む) 内の文字列を格納およびバッファーThe _gcvt function converts a floating-point value to a character string (which includes a decimal point and a possible sign byte) and stores the string in buffer. バッファー変換後の値と自動的に追加される終端の null 文字を対応するために十分な大きさにする必要があります。The buffer should be large enough to accommodate the converted value plus a terminating null character, which is appended automatically. 場合のバッファー サイズを+ 1 を使用すると、バッファーの末尾は上書きされます。If a buffer size of digits + 1 is used, the function overwrites the end of the buffer. これは、変換後の文字列に小数点が含まれており、符号と指数の情報が含まれている可能性があるためです。This is because the converted string includes a decimal point and can contain sign and exponent information. オーバーフローに対するプロビジョニングはありません。There is no provision for overflow. _gcvtを生成しようと10 進形式の数字です。_gcvt attempts to produce digits digits in decimal format. 生成できない場合は、指数形式で数字。If it cannot, it produces digits digits in exponential format. 後続のゼロは、変換時に非表示になる可能性があります。Trailing zeros might be suppressed in the conversion.

Aバッファー長さの _CVTBUFSIZEがにとって十分で、任意の浮動小数点値。A buffer of length _CVTBUFSIZE is sufficient for any floating point value.

この関数は、パラメーターを検証します。This function validates its parameters. 場合バッファーNULLで説明されているとおり、無効なパラメーター ハンドラーが呼び出されますパラメーターの検証です。If buffer is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合に、この関数が設定errnoEINVAL返しますNULLします。If execution is allowed to continue, this function sets errno to EINVAL and returns NULL.

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_gcvt_gcvt <stdlib.h><stdlib.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

Example

// 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)

関連項目See also

データ変換Data Conversion
浮動小数点サポートFloating-Point Support
atof、_atof_l、_wtof、_wtof_latof, _atof_l, _wtof, _wtof_l
_ecvt_ecvt
_fcvt_fcvt