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(),
fcvt():
- glibc 2.12 以降:
-
(_XOPEN_SOURCE >= 500) ! (_POSIX_C_SOURCE >= 200112L)
|| /* Glibc since 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _SVID_SOURCE
- glibc 2.12 より前:
- _SVID_SOURCE || _XOPEN_SOURCE >= 500
関数
ecvt() は
number
をヌル文字で終端された
ndigits
文字の文字列へ変換し、その文字列へのポインターを返す
(
ndigits が
double
の精度によって決定されるシステム依存の上限値より大きい場合は、
その条件値が
ndigits
の値となる)。
number が 0
でなければ、最上位の桁は
0 以外である。
最下位の桁は丸められる。
文字列には小数点は含まれない。そのかわりに、文字列の先頭からの小数点の
位置が
*decpt
に保持される。
*decpt
が負の値の場合、小数点が文字列の先頭の左側にあることを意味する。
もし(
numberの)符号が負ならば
*sign は 0 以外の値に、
そうでなければ 0
に設定される。
number
が 0 なら、
*decpt が 0 か 1
かは未規定である。
関数
fcvt() は
ecvt()
と同じ機能を持つが、
ndigits
は小数点以下の文字数を指定する。
関数
ecvt() と
fcvt() は
number
の ASCII 表現を含む
静的な領域内の文字列へのポインターを返す。
この文字列は
ecvt() や
fcvt()
の呼び出しのたびに上書きされる。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
ecvt() |
Thread safety |
MT-Unsafe race:ecvt |
fcvt() |
Thread safety |
MT-Unsafe race:fcvt |
SVr2。 POSIX.1-2001
では「過去の名残
(LEGACY)」と位置付けられている。
POSIX.1-2008 では
ecvt() と
fcvt()
の仕様が削除され、代わりに
sprintf(3)
の使用が推奨されている(しかし
snprintf(3)
がより適切かもしれない)。
小数点にピリオドを使わないロケールもある。
ecvt_r(3),
gcvt(3),
qecvt(3),
setlocale(3),
sprintf(3)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。