_gcvt() — 浮動小数点からストリングへの変換

形式

#include <stdlib.h>
char *_gcvt(double value, int ndec, char *buffer);
注: _gcvt 関数は C++ でのみサポートされ、C ではサポートされません。

スレッド・セーフ

はい

言語レベル

拡張機能

ロケール依存

この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーおよび LC_NUMERIC カテゴリーの影響を受ける可能性があります。 詳しくは、 CCSID とロケールについてを参照してください。

説明

_gcvt() は、浮動小数点値をバッファーがポイントした文字列に変換します。 バッファーは、変換された値、および _gcvt() によってストリングの終わりに 自動的に追加されるヌル文字 (¥0) を保持するのに十分な大きさでなければなりません。 オーバーフローに対する対応策はありません。

_gcvt() は、FORTRAN F フォーマットで ndec 有効数字を生成しようと試みます。 それに失敗した場合、FORTRAN E フォーマットで ndec 有効数字を生成します。 後続ゼロは、重要ではない場合、変換で抑制される可能性があります。

FORTRAN F 番号の形式は以下のとおりです。
構文図を読むビジュアル構文図をスキップ+-数字 数字 . 数字
FORTRAN E 番号の形式は以下のとおりです。
構文図を読むビジュアル構文図をスキップ+-数字. 数字 E+-数字 数字

_gcvt は、無限大値もストリング INFINITY に変換します。

戻り値

_gcvt() は、ディジットのストリングを指すポインターを戻します。 変換を実行するためにメモリーを割り振ることができない場合、_gcvt() は空ストリングを戻し、errno に ENOMEM を設定します。

この例では、値 -3.1415e3 を文字ストリングに変換し、変換された文字ストリングを文字配列 buffer1 に置きます。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char buffer1[10];
    _gcvt(-3.1415e3, 7, buffer1);
    printf("The first result is %s \n", buffer1);
    return 0;
}
出力は以下の通りです。
       The first result is -3141.5

関連情報