次の方法で共有


_gcvt

更新 : 2007 年 11 月

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

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

パラメータ

  • value
    変換される数値。

  • digits
    格納する有効数字の桁数。

  • buffer
    結果の格納場所。

戻り値

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

解説

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

長さが _CVTBUFSIZE の buffer は、すべての浮動小数点値に対応します。

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

必要条件

ルーチン

必須ヘッダー

_gcvt

<stdlib.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

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

.NET Framework の相当するアイテム

System::Convert::ToString

参照

参照

データ変換

浮動小数点サポート

atof、_atof_l、_wtof、_wtof_l

_ecvt

_fcvt