ECVT

Section: Linux Programmer's Manual (3)
Updated: 2016-03-15
Index JM Home Page
 

名前

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

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

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/ に書かれている。

関連キーワード

小数点   ecvt   fcvt   decpt   double   ポインター   Thread   safety   race   浮動   小数   点数   stdlib   検査   マクロ   要件   macros   since   versions   ヌル   終端   精度   決定   依存   上限値

Linux マニュアル 一覧

関連するコマンド・関数

fcvt.3   ecvt_r.3   fcvt_r.3   qecvt_r.3   qfcvt_r.3   logb.3
 

Index

名前
書式
説明
返り値
属性
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:36 GMT, October 11, 2026