名前


ecvt, fcvt - 浮動小数点数の文字列への変換

書式


#include <stdlib.h>

char *ecvt(double number, int ndigits, int *decpt, int *sign);

char *fcvt(double number, int ndigits, int *decpt, int *sign);

説明


関数 ecvt() は number を NUL 文字で終端された ndigits 文字 (ndigits は double の精度によって決定される システム依存の制限値にまで減らされる) の文字列へ変換し、 その文字列へのポインタを返す。 最上位の桁は number が 0 でなければ 0 以外である。 下位の桁は丸められる。 文字列には小数点は含まれない。そのかわりに、文字列の先頭からの小数点の 位置が decpt に保持される。 decpt の負の値は小数点が文字列の先頭の左側にあることを意味する。 もし(numberの)符号が負ならば sign は 0 以外の値に、 そうでなければ 0 に設定される。 もし number が 0 なら、*decpt が 0 か 1 かは未規定である。

関数 fcvt() は、ndigits が小数点以下の文字数 であることを除いては ecvt() と同じである。

返り値


関数 ecvt() と fcvt() は number の ASCII 表現を含む 静的な領域内の文字列へのポインタを返す。 この文字列は ecvt() や fcvt() の呼出しのたびに上書きされる。

準拠


SVr2; POSIX.1-2001 では「過去の名残 (LEGACY)」と位置付けられている。

注意


これらの関数は古い物である。代わりに sprintf(3) を使うこと。 Linux libc4 と libc5 では ndigits の型は size_t と指定されている。 小数点にピリオドを使わないロケールもある。

関連項目


ecvt_r(3), gcvt(3), qecvt(3), setlocale(3), sprintf(3)

openSUSE Logo

コンテンツ