_gcvt

浮動小数点値を文字列に変換し、バッファーに格納します。 この関数のセキュリティが強化されたバージョンについては、「_gcvt_s」を参照してください。

構文

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

パラメーター

value
変換する値。

digits
格納されている有効桁数。

buffer
結果の格納場所。

戻り値

_gcvt は数字の文字列へのポインターを返します。

解説

_gcvt 関数は、(小数点、符号バイトを含む) 浮動小数点 value を文字列に変換し、その文字列を buffer に格納します。 buffer は、変換された値に、自動的に追加される終端の null 文字を加えたものに対応するのに十分な大きさである必要があります。 digits + 1 のバッファー サイズが使用されている場合、この関数によってバッファーの末尾が上書きされます。 上書きは、変換された文字列に小数点が含まれており、符号と指数の情報を含めることもできます。 関数はオーバーフローを考慮しません。 _gcvt は、10 進数形式で digits 桁を生成しようとします。 できない場合は、指数形式の数字が生成されます digits 。 後続のゼロは、変換時に非表示になる可能性があります。

長さ _CVTBUFSIZEbuffer は、どの浮動小数点値にも十分です。

この関数は、パラメーターを検証します。 有効な場合bufferNULL、「パラメーターの検証」の説明に従って、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は errnoEINVAL に設定し、NULL を返します。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

必要条件

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

互換性の詳細については、「 Compatibility」を参照してください。

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