_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
桁が生成されます。 後続のゼロは、変換時に非表示になる可能性があります。
長さ _CVTBUFSIZE
の buffer
は、どの浮動小数点値にも十分です。
この関数は、パラメーターを検証します。 buffer
が NULL
の場合は、「パラメーターの検証」で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は errno
を EINVAL
に設定し、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